Просмотр базовых логов Docker Desktop
На этом шаге вы научитесь просматривать базовые логи Docker-контейнеров. Логи крайне важны для отладки и мониторинга приложений, работающих в контейнерах.
Сначала запустим простой контейнер, который генерирует некоторый вывод. Мы будем использовать образ hello-world
— это очень маленький образ, который печатает сообщение и завершает работу.
docker run hello-world
Вы должны увидеть вывод, похожий на этот, что означает, что Docker-демон успешно загрузил образ и запустил контейнер:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f52335ce493178fc15f729218f180e9988e31c374a6ce98da40cbb890f97f10e
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(Assuming it was not already locally available.)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To learn more, try the following commands:
docker run -it ubuntu bash
docker images
docker ps
docker stop <containerid>
docker rm <containerid>
To get started with Docker Desktop, visit:
https://www.docker.com/products/docker-desktop
Этот вывод представляет собой стандартный вывод (stdout) и стандартный поток ошибок (stderr) контейнера. Docker захватывает эти потоки и делает их доступными в виде логов.
Теперь запустим контейнер, который продолжает работать и генерирует логи с течением времени. Мы будем использовать образ alpine
и выполним простую команду, которая печатает сообщение каждые 5 секунд.
Сначала загрузим образ alpine
:
docker pull alpine
Вы должны увидеть вывод, указывающий на загрузку образа:
Using default tag: latest
latest: Pulling from library/alpine
... (output showing download progress)
Digest: sha256:...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Теперь запустим контейнер alpine
в фоновом режиме (-d
) и дадим ему имя (--name mylogger
) для удобства. Команда while true; do echo "Hello from mylogger at $(date)"; sleep 5; done
будет выводить сообщение с текущей датой каждые 5 секунд.
docker run -d --name mylogger alpine sh -c 'while true; do echo "Hello from mylogger at $(date)"; sleep 5; done'
Эта команда выведет идентификатор контейнера.
Чтобы просмотреть логи работающего контейнера, используйте команду docker logs
с указанием имени или ID контейнера.
docker logs mylogger
Вы увидите вывод, сгенерированный командой контейнера, с новой строкой примерно каждые 5 секунд. Нажмите Ctrl+C
, чтобы прекратить просмотр логов.
Для просмотра логов в реальном времени используйте опцию -f
(follow):
docker logs -f mylogger
Это будет непрерывно отображать новые записи логов по мере их генерации. Нажмите Ctrl+C
, чтобы прекратить слежение за логами.
Наконец, остановим и удалим созданный контейнер:
docker stop mylogger
docker rm mylogger
Это освободит ресурсы контейнера.