Мало развернуть контейнер, нужно за ним ещё и наблюдать. Способов для этого много и мы рассмотрим их ниже.
В Docker есть команды, которые позволяют облегчить различные задачи, например:
- Просмотр версии Docker;
- Просмотр информации о сервере;
- Загрузка обновлений образов;
- Изучение контейнеров;
- Вход в работающий контейнер;
- Возврат результатов;
- Просмотр журналов;
- Мониторинг статистики и т.д.
Просмотр версии Docker
docker version
Версии компонентов могут различаться
Информация о сервере
docker system info
Выведется информация об образах, контейнерах, плагинах и т.д.
По умолчанию файл конфигурации Docker содержится в файле /etc/docker/daemon.json. Для большинства аргументов, которые передаются в dockerd здесь можно задать постоянные значения.
Загрузка обновлений образов
docker image pull ubuntu:latest
Docker не будет автоматически обновлять локальный образ.
Изучение контейнера
docker container inspect
Выдаёт подробный вывод о контейнере.
Изучение командной оболочки
docker container run -it ubuntu:latest /bin/bash
Если после запуска мы посмотрим на запущенные процессы, то увидим только bash. Это происходит потому, что в контейнере ничего не запускается автоматически.
Возврат результата
docker container run ubuntu:latest /bin/cat /etc/passwd
В ответ мы получим содержимое файла /etc/passwd. Символ | в контейнер не передаётся. Если нужно выполнить пайп именно в контейнере, то нужно передавать строку для выполнения совместно с /bin/bash.
Что происходит в контейнере
Exec
docker contanter exec -ti ... /bin/bash
Данной командой мы откроем TTY в контейнере и перейдём в него.
Volume
docker volume ls
Позволяет посмотреть список томов, которые были созданы самим Docker через docker volume create my-data.
docker volume rm
Позволяет удалить том, если он больше не нужен.
Журналирование
docker container logs
Позволяет вывести логи из контейнера.
Файлы из этого журнала хранятся в /var/lib/docker/containers/id/. Чтобы не смотреть логи локально можно настроить их отправку во внешние системы с помощью настроек файла daemon.json.
Мониторинг
stats
docker container stats
Выведет динамический срез информации о работе контейнера с информацией:
- Имя контейнера;
- Потребление ресурсов ЦПУ, где 100% - одно ядро;
- ОЗУ;
- Сеть, Docker перенаправляет трафик на порты контейнера даже если они ещё не запущены.
Также данную информацию можно получить через API
/stats
events
docker system events
Показывает все события, которые происходят в Docker.
cAdvisor
Инструмент от компании Google, который сам ставится через Docker и позволяет следить за другими контейнерами на порту 8080. Также метрики с него можно отгружать в Prometheus