Как обеспечить подтвержденный изящный выход из докера? - PullRequest
2 голосов
/ 19 июня 2019

Docker иногда существует, но продолжает работать.

Начинается с:

docker run -v $PWD:/host --rm -it Ubuntu_2018

После «выхода»: Docker container ls;Docker-контейнер ls -al

Это все еще показывает, что контейнер работает. Как убедиться, что Docker-контейнер завершен корректно?

При использовании опции "--rm" и выходе из Docker с помощью «exit» следует выполнить командупотребу.Но иногда это остается.

После выхода "docker container ls; docker container ls -al" вообще не должен отображать docker

1 Ответ

1 голос
/ 19 июня 2019

Как обеспечить подтвержденный изящный выход из докера?

Не глядя на вывод docker container ls -al, который в комментариях показывает остановленные контейнеры.

Но, посмотрев на:

  • журналы остановленного контейнера для сообщения приложения о том, что остановка была изящной (так что это больше зависит от приложения в контейнере, меньше от самого Docker).
  • его код состояния выхода: docker inspect -f '{{.State.ExitCode}}' <container SHA>

Об этом см. « Изящная остановка контейнеров Docker » от Brian DeHamer , который напоминает нам, что когда вы используете Docker Stop или Docker kill для подачи сигнала на контейнер, этот сигнал отправляется только для процесса контейнера, выполняющегося как PID 1.

См. Также " Жизнь и смерть контейнера " от Луис Эррера Бенитес , который указывает на существование "docker inspect --format='{{.State.Health.Status}}' <containerName>": если это вредно для здоровья ... шансы Ваша последующая остановка может быть не изящной.

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