Что такое автономный режим в мире докеров? Я прочитал ссылку на эту статью , но она не объясняет, что именно означает отключенный режим.
Вы можете запустить докер-контейнер в автономном режиме с -d
опцией. Таким образом, контейнер запускается и работает в фоновом режиме. Это означает, что вы запускаете контейнер и можете использовать консоль после запуска для других команд.
Противоположностью отдельному режиму является режим переднего плана. Это режим по умолчанию, когда -d
опция не используется. В этом режиме консоль, которую вы используете для выполнения, docker run
будет подключена к стандартному вводу, выводу и ошибке. Это означает, что ваша консоль подключена к процессу контейнера.
В автономном режиме вы можете следить за стандартным выводом вашего контейнера докеров с помощью docker logs -f <container_ID>
.
Просто попробуйте оба варианта. Я всегда использую автономный режим для запуска своих контейнеров. Я надеюсь, что смогу объяснить это немного яснее.
docker logs -f [container_ID] > logs.txt
. Если это не сработает, попробуйте добавить флаг «-it» при запуске контейнера докеров, как это предлагает @BMitch ниже.Параметр отсоединения в командной строке docker указывает, что клиент docker (
docker
) сделает запрос к серверу (dockerd
), а затем клиент завершит работу, пока этот запрос продолжается на сервере. Частично путаница может заключаться в том, что докер выглядит как единый процесс, тогда как на самом деле это приложение клиент / сервер, где клиент - это просто тонкий интерфейс REST API для отправки каждой команды на сервер.С a
docker container run --detach
это означает, что контейнер будет создан, сервер ответит идентификатором контейнера в случае успеха, и контейнер будет продолжать работать на сервере, пока вы можете выполнять другие команды. Это часто используется для сервера (например, nginx), который вы хотите запустить в фоновом режиме, пока вы продолжаете выполнять другие команды. Обратите внимание , что вы можете настроить контейнер с--interactive
и-tty
варианты (часто сокращенно-it
) , а затем запустить ,docker container attach
чтобы подключиться к уже запущенному контейнеру. (Обратите внимание: пока вы не подключитесь к контейнеру, работающему с-itd
, любая попытка контейнера прочитать из stdin будет зависать, вместо того, чтобы видеть конец ввода, который часто вызывает немедленный выход, если вы только что прошли-d
.Если вы запустите без опции отсоединения, клиент немедленно запустит вызов API присоединения после создания контейнера, чтобы вы могли видеть выходные данные и, при необходимости, предоставлять входные данные для запущенного процесса в контейнере. Это полезно, если в вашем контейнере работает что-то интерактивное (например
/bin/bash
).Несколько других команд позволяют отключить параметр, в том числе
docker-compose up -d
запускает весь проект и оставляет его работающим на сервере в фоновом режиме. Также существует множествоdocker service
команд, которые либо отключаются после отправки изменения на сервер для создания или обновления целевого состояния службы, либо, если вы не отключаете, клиент будет ждать, пока текущее состояние службы не совпадет с целевым состоянием, и вы можете увидеть ход развертывания. Обратите внимание наdocker service
команды, которые вам, возможно, придется передать,--detach=false
чтобы оставаться прикрепленным, поведение изменилось за последний год в зависимости от вашей версии.источник
--detach-keys
)--interactive
и--tty
(иначе-it
), чтобы это работало.docker run - Создайте экземпляр из образа докера как контейнер докера. (если изображение недоступно локально, он извлекается из концентратора докеров) ubuntu - имя изображения
14.04 - Тег
-d, --detach - Режим отключения
-t, --tty - назначить псевдо-TTY
источник