Как проверить, запущен ли демон Docker или контейнер — CloudSavvy IT

Иллюстрация с логотипом Docker

Docker использует архитектуру на основе демонов, в которой интерфейс командной строки подключается к долгоживущему процессу, выполняющемуся отдельно на вашем компьютере или удаленном хосте. Команды CLI не будут работать, и ваши контейнеры обычно отключаются, если демон останавливается.

Вот как проверить, включен ли демон Docker, чтобы вы могли диагностировать проблемы с контейнерами и командой docker. Когда демон не запущен, вы будете видеть сообщение «не удается подключиться к демону Docker» каждый раз, когда используете интерфейс командной строки docker.

Проверка с помощью Systemctl

Вы можете проверить статус Docker с помощью systemctl в дистрибутивах, которые используют Systemd для управления службами. Это охватывает большинство популярных операционных систем, включая Debian, Ubuntu, CentOS и Red Hat.

Докер состояния sudo systemctl

Проверьте, что отображается в разделе «Активно». Если вы видите активный (работает) зеленым, демон Docker запущен, и ваши контейнеры должны быть в рабочем состоянии.

Активное состояние «неактивно» означает, что служба остановлена. Попробуйте запустить его, запустив sudo systemctl start docker. После запуска демона статус должен измениться на активный (работает).

Если вы видите красный статус «сбой», демон не может запуститься из-за ошибки. Вам следует просмотреть журналы запуска службы, показанные позже в выходных данных команды systemctl, поскольку они обычно содержат подсказки, позволяющие понять, что пошло не так.

Если очевидного разрешения нет, вручную запустите демон в режиме отладки, чтобы получить дополнительную информацию о его процедуре запуска.

sudo dockerd —debug

Перезагрузка хост-компьютера или перезапуск службы Docker с помощью systemctl restart docker также может помочь решить временные проблемы.

Проверка деталей процесса

Еще один способ проверить работоспособность демона Docker — проверить его файл идентификатора процесса. Демон записывает свой идентификатор процесса в /var/run/docker.pid при каждом запуске. Когда этот файл существует, Docker должен быть запущен и готов к соединениям через интерфейс командной строки.

кошка /var/run/docker.pid

Вы можете использовать эту технику для создания программных сценариев, которые проверяют, жив ли демон. Чтение файла дает вам идентификатор, который вы можете использовать с такие инструменты, как топ чтобы получить больше информации о процессе Docker:

cat /var/run/docker.pid # идентификатор процесса = 1000 top -p 1000

Вы также можете получить идентификатор процесса с помощью команды pidofcommand. Это принимает имя процесса и возвращает первый совпадающий идентификатор:

pidof dockerd # process id = 1000 # просматривать информацию с помощью top top -p `pidof dockerd`

На вашем компьютере есть активный демон Docker, если top соответствует процессу dockerd. Это может быть более надежным, чем поиск docker.pid — если демон выйдет из строя, docker.pid может остаться после завершения процесса.

Обработка застрявших файлов процесса

Демон откажется перезапускаться при наличии файла PID. Это может привести к тому, что вы застрянете в цикле перезапуска, если файл фактически потерял свое значение в результате предыдущего запуска. Вы увидите это сообщение при запуске dockerd:

не удалось запустить демон: найден файл pid, убедитесь, что докер не запущен, или удалите /var/run/docker.pid

Используйте pidof dockerd, чтобы убедиться, что Docker действительно остановлен. Продолжить, если команда не выдает никаких выходных данных, подтверждая отсутствие запущенного процесса.

Запустите sudo rm /var/run/docker.pid, чтобы удалить старый файл идентификатора процесса. Теперь демон должен успешно запуститься при следующем запуске dockerdor service start.

Проблемы с файлом PID обычно возникают, когда вы делаете снимок виртуальной машины, а затем создаете новый экземпляр из образа. Файл процесса будет включен в моментальный снимок, в результате чего демон Docker в новой виртуальной машине будет думать, что он уже запущен.

Проверка отдельных контейнеров

Статус отдельных контейнеров доступен через команду docker ps. Это создает таблицу, содержащую подробную информацию обо всех запущенных в данный момент контейнерах.

докер ps

Объедините команду docker ps с grep, чтобы легко проверить, запущен ли конкретный контейнер по идентификатору или имени:

докер пс | grep имя-контейнера

Теперь вывод будет отфильтрован, чтобы показать выбранный вами контейнер. Если контейнер не запущен, записей не будет.

Остановленные контейнеры отображаются с помощью docker ps -a. Остановленный контейнер можно запустить командой docker start:

докер запускает мой контейнер

Затем контейнер перейдет в обычный вывод docker ps. Вы можете остановить его снова с помощью docker stop my-container.

Заключение

У вас есть несколько вариантов, которые следует учитывать, если вы хотите узнать, работает ли Docker. Есть диспетчер служб вашей операционной системы, файл docker.pid и обычные инструменты проверки процессов, такие как top и pidof.

Когда дело доходит до отдельных контейнеров, docker ps предоставляет список всего, что в данный момент работает на вашем хосте. Более полную информацию о состоянии любого контейнера можно получить с помощью docker inspect container-name, которая предоставляет подробную информацию о конфигурации сети, томах и метках в формате JSON.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *