Docker-compose restart: если не остановлено - странное поведение - PullRequest
0 голосов
/ 05 апреля 2019
> docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                          PORTS                    NAMES
210ebea2ef5f        localhost.localdomain/foo                           "node app.js -C conf…"   12 minutes ago      Restarting (1) 9 minutes ago                             foo

> docker stop 210ebea2ef5f
210ebea2ef5f

> docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                          PORTS                    NAMES
210ebea2ef5f        localhost.localdomain/foo                           "node app.js -C conf…"   12 minutes ago      Restarting (1) 9 minutes ago                             foo

да?

> docker kill 210ebea2ef5f
Error response from daemon: Cannot kill container: 210ebea2ef5f: Container 210ebea2ef5f6f25265a3da88954fe111fabba99602ef628e0ee88630e26fd5d is not running

> docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                          PORTS                    NAMES
210ebea2ef5f        localhost.localdomain/foo                           "node app.js -C conf…"   12 minutes ago      Restarting (1) 9 minutes ago                             foo

есть у кого-нибудь какое-нибудь понимание того, что здесь происходит?Я начал это замечать, когда включил политики перезапуска в своих контейнерах.Это работает в Docker для Windows (18.09.3).Политика перезапуска устанавливается с помощью docker compose следующим образом:

version: '3'
services:
  foo:
    build: .
    image: localhost.localdomain/${repository_name}
    container_name: ${container_name}
    restart: unless-stopped:0

Являются ли политики перезапуска просто ошибочными в Docker для Windows?

btw.docker rm 210ebea2ef5f сделал окончательно удалил контейнер из моего списка докеров ps, но я не ожидал такого поведения.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Это похоже на ошибку с docker ps, которая исправлена ​​в 18.09.5 .Если вы проверяете контейнер с:

docker inspect 210ebea2ef5f --format '{{ json .State }}'

, статус должен отображаться как выход.

Причина, по которой я подозреваю, что вы видите эту ошибку с docker ps, заключается в том, что состояние показывает 9 минут.назад, где нормальный цикл сбоя происходит в считанные секунды.Вы можете попробовать rc1 для 18.09.5, который был только что выдвинут (для этого необходимо получить обновления из тестового выпуска), или дождаться выпуска финального 18.09.5 и выполнить обновление до него.Похоже, что это проблема только с выводом ps, и не влияет на поведение самих контейнеров.

0 голосов
/ 05 апреля 2019

Ваша политика перезапуска делает именно то, о чем вы просили.

Если вы посмотрите на столбец STATUS в выводе docker ps, вы увидите:

Restarting (1) 9 minutes ago

Как правило, это означает, что контейнер не работает успешно: он запускается, затем сразу выходит, а затем немедленно перезапускается Docker. Это означает, что есть хорошие шансы, что при запуске docker kill контейнер на самом деле не работает.

Вы можете запустить docker stop <id>, чтобы остановить контейнер и предотвратить его перезапуск.

Вам нужно будет изучить ваши журналы и ваш Dockerfile, чтобы определить, почему контейнер покидает контейнер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...