Docker стек / служба не работает, как отлаживать? - PullRequest
1 голос
/ 21 марта 2020

Я создаю стек для docker -warm.

Это мой стек для django и nginx.

Я развернул его, но он так и не запустился.

ID                  NAME                    MODE                REPLICAS            IMAGE                                 PORTS
n9j49jx667x5        django_nginx    replicated          0/1                 nginx:1.13                            *:8000->8000/tcp
7h3sbmmgwbvn        django_python   replicated          0/1                 registry:5000/mydjango:latest   *:8082->8082/tcp
dkzk9z3rdtzm        phpmyadmin_phpmyadmin   global              1/1                 phpmyadmin/phpmyadmin:latest          *:8009->80/tcp
kf6xisbvqdqv        visualizer_app          global              1/1                 dockersamples/visualizer:latest       *:9009->8080/tcp

Теперь я хочу проверить, почему этот стек не работает.

, но как я могу проверить журнал или какую-то подсказку ??

Если служба однажды работает, я можно проверить как

docker container exec -it manager docker service logs -f visualizer_app

Но как я могу выяснить, почему стек / служба не работает ... ??

version: '3'
services:
  python:
    image: registry:5000/mydjango:latest
    command: uwsgi --socket :8001 --module jrtweet.wsgi --py-autoreload 1 --logto /tmp/mylog.log
    volumes: 
      - ./src:/code
      - ./src/static:/static
    ports:
      - "8082:8082"
  nginx:
    image: nginx:1.13
    ports:
      - "8000:8000"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params
      - ./static:/static
    depends_on:
      - python

, даже если я попробовал самую простую настройку, но это не не работает, и я даже не знаю, как отлаживать .....


Я выяснил причину, почему это не работает, попытка и ошибка.

Я прокомментировал из #volumes это работает, но это должен быть другой вопрос ...

Я все еще хочу знать, отладка службы запуска .....


Спасибо taleodor Я могу найти журнал service ps

docker container exec -it man docker service ps django_python


mbx47zczllwm        django_python.1       registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Ready               Rejected less than a second ago   "invalid mount config for type…"   
xgpet2jwwocq         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected less than a second ago   "invalid mount config for type…"   
zl1z7a0qx330         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected 38 seconds ago           "invalid mount config for type…"   
zewlsc76zluy         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected about a minute ago       "invalid mount config for type…"   
zytucyx6unsg         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected about a minute ago       "invalid mount config for type…"   
zqjdobhkti47         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected about a minute ago       "invalid mount config for type…"   
zxe18cc554ev         \_ django_python.1   registry:5000/myprog/djangosrc:latest   6b0938c9c5fb        Shutdown            Rejected about a minute ago       "invalid mount config for type…"  

Ответы [ 2 ]

1 голос
/ 21 марта 2020
  1. Do docker услуга ps , то есть:

    docker услуга ps django_ nginx

  2. Это даст вам подсказки о попытках запуска сервера и возможных ошибках. Если ошибка достаточно ясна, остановитесь на этом.

  3. Если ошибка не ясна - и контейнеры были запущены, но быстро завершены, найдите эти контейнеры с помощью docker ps и получить свои журналы через

    docker logs container_id

0 голосов
/ 21 марта 2020

Ошибки уровня планирования, такие как «изображение не найдено», «нет подходящего узла для ограничения размещения» или «ошибки плагина тома», могут быть определены следующим образом: docker service ps django_python --no-trunc

--no-trunc предотвратит ошибку сообщение должно быть отключено.

Для развертываний Swarm требуется bind-mounts (тип, который вы пытаетесь использовать) для использования абсолютных путей.

Предположим, что ваш docker -compose.yml находится в /home/user/docker-compose.yml, и вы хотите использовать hostpath / home / user / test в качестве «источника тома». Тогда вам действительно нужно использовать абсолютный путь / home / user / tests, а не относительный путь ./test, как вы делали в своих примерах.

...