Подключение к работающему контейнеру и наблюдение за его выводом
На предыдущем шаге мы запустили контейнер в detached-режиме. Хотя контейнер выполнил простую команду и, вероятно, быстро завершил работу, мы всё равно можем подключиться к нему, чтобы увидеть его вывод. Команда docker attach
позволяет подключиться к стандартным потокам ввода, вывода и ошибок работающего или завершившего работу контейнера.
Сначала получим ID контейнера, который мы запустили на предыдущем шаге. Используйте команду docker ps -a
и найдите контейнер с командой echo
. Скопируйте ID контейнера.
docker ps -a
Теперь используйте команду docker attach
с указанием ID контейнера для подключения.
docker attach <container_id>
Замените <container_id>
на фактический ID вашего контейнера. Поскольку контейнер выполнил простую команду echo
и завершил работу, вы можете не увидеть вывод сразу или увидеть сообщение "Hello from detached container!", если вывод всё ещё буферизирован. Команда attach
подключит вас к потокам контейнера. Так как контейнер уже завершил свою задачу, команда attach
, скорее всего, сразу же отключится после подключения.
Чтобы продемонстрировать подключение к работающему контейнеру, давайте запустим новый контейнер в detached-режиме, который будет работать несколько секунд. Снова используем образ ubuntu
с командой sleep 10
.
docker run -d ubuntu sleep 10
Получите ID этого нового контейнера с помощью docker ps
. На этот раз контейнер должен быть в состоянии Up
.
docker ps
Теперь подключитесь к этому работающему контейнеру, используя его ID.
docker attach <new_container_id>
Замените <new_container_id>
на ID контейнера с командой sleep 10
. Вы подключитесь к стандартным потокам контейнера. Поскольку команда sleep
не генерирует вывод, вы ничего не увидите. Терминал будет ожидать. Контейнер проработает 10 секунд, после чего завершится. Когда контейнер завершит работу, команда attach
также завершится, вернув вас к приглашению терминала.