Windows 10: Docker немедленно покидает контейнеры - PullRequest
0 голосов
/ 05 февраля 2020

Сначала я устанавливаю Docker через Desktop Installer. Затем я тестирую прогон

docker run hello-world или docker run -it -p 8091:8091 hello-world

Я пробую linux контейнеры и windows контейнеры. Результат всегда один и тот же: контейнеры создаются и немедленно закрываются.

docker container ls --all показывает, используя windows контейнеры:

C:\Users\lruland>docker container ls --all
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS                     PORTS               NAMES
78e1c44209b7        hello-world         "cmd /C 'type C:\\hel…"   4 seconds ago       Exited (0) 3 seconds ago                       sharp_jones

, используя linux контейнеры:

CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS                      PORTS               NAMES
a90826bdf0f5        hello-world            "/hello"            17 seconds ago      Exited (0) 16 seconds ago                       cocky_darwin

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Это распространенное заблуждение, когда люди начинают с Docker.

Контейнер вышел из-за завершения своей работы: вывел hello world, поэтому код выхода равен 0, а не 1, например. Контейнер успешно завершился.

Если вы проверите файл docker для изображения hello-world здесь , вы увидите следующую строку:

CMD ["/hello"]

Это означает, что однажды вы запустите контейнер с этим изображением, он просто запустит двоичный файл hello, скомпилированный из этого привет. c файла. И все, что он делает, это просто отображает сообщение и выходит. Если вы попробуете другое изображение, например redis, оно не выйдет, потому что запущенный процесс является долгосрочным.

1 голос
/ 05 февраля 2020

hello-world контейнер должен напечатать «Hello World» и немедленно выйти. Так что это ожидаемое поведение.

Docker контейнирует ваше приложение, но жизненный цикл приложения - это спецификация приложения c.

Попробуйте контейнер, который на самом деле работает на каком-либо сервере, и вы увидите что он не выходит сразу

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