В скрипте мне нужно проверить:
а) Двигатель докера работает?
б) Учитывая имя контейнера, запущен ли этот контейнер докеров?
[первоначальная формулировка этого вопроса была неоднозначной, некоторые люди интерпретировали ее как «проверить механизм докеров», а другие - как «проверить контейнер докеров»]
docker attach containerName
docker ps
docker ps
----- Эта команда покажет толькоОтветы:
Если вы ищете конкретный контейнер, вы можете запустить:
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...
Чтобы избежать проблем с контейнером, который находится в цикле сбоя и постоянно перезапускается из-за того, что он работает, вышеуказанное можно улучшить, проверив
Status
поле:if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...
Если вы хотите узнать, работает ли dockerd на локальном компьютере и у вас установлен systemd, вы можете запустить:
Вы также можете подключиться к докеру с помощью
docker info
или,docker version
и они выдадут ошибку, если демон будет недоступен.источник
docker inspect …
внутриif
инструкцию bash-скрипта?if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
с тех пор, как запускаю свой контейнер с политикой перезапуска, хотя здесь «истина» - это то, чего вы хотите избежать.if
оператор, когда контейнер не запущен. За этим скрывается нежелательная выпивка по ложному делу:if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
В итоге я использовал
чтобы проверить с помощью сценария bash, работает ли движок докера.
источник
docker info > /dev/null 2>&1
если вам не нужен выводвы можете проверить состояние докера, используя:
systemctl is-active docker
вы можете использовать его как:
➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi is alive :) ➜ ~ sudo systemctl stop docker ➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi * empty response *
источник
docker ps --filter name=pattern
, затем вы можете отформатировать вывод, чтобы проверить только статус, добавив этот флаг:--format {{.Status}}
Перечислить все контейнеры:
docker container ls -a
ls
= список-a
= всеПроверить столбец «статус»
источник
Для пользователей OS X (Mojave 10.14.3)
Вот что я использую в своем сценарии Bash, чтобы проверить, запущен ли Docker или нет
# Check if docker is running if ! docker info >/dev/null 2>&1; then echo "Docker does not seem to be running, run it first and retry" exit 1 fi
источник
if [[ $? -ne 0 ]]
антипаттерн.Любая команда docker (кроме
docker -v
), например,docker ps
Если Docker запущена, вы получите корректный ответ, в противном случае вы получите сообщение, включающее «Ваш демон Docker запущен и работает?»Вы также можете проверить свой диспетчер задач.
источник
Иногда вы не знаете полное имя контейнера, в этом случае у меня сработало следующее:
if docker ps | grep -q keyword then echo "Running!" else echo "Not running!" exit 1 fi
Мы перечисляем все запущенные процессы контейнера (
docker ps -a
показывали бы нам также не запущенные, но это не то, что мне нужно), мы ищем конкретное слово (grep
часть) и просто терпим неудачу, если мы не нашли хотя бы один запущенный контейнер, имя которого содержит наш ключевое слово.источник
Вы можете проверить с помощью этой команды,
systemctl status docker
она покажет статус докера. Если вы хотите начать, вы можете использоватьsystemctl start docker
вместо,systemctl
вы также можете попробоватьservice
,service docker status
иservice docker start
соответственно.источник
systemd
качестве init.systemctl status docker
правильно показать, работает ли служба докеров. Спасибо.Вы также можете проверить, запущен ли конкретный контейнер докеров или нет, используя следующую команду:
docker inspect postgres | grep "Running"
Эта команда проверит, например, работает ли мой контейнер postgres или нет, и вернет вывод как «Выполняется»: true
Надеюсь это поможет.
источник
Бегать:
Если докер запущен, вы увидите:
Если докер не запущен, вы увидите:
источник
Если основная цель - «Как запустить контейнер при запуске Docker?»
Мы можем использовать политику перезапуска Docker
Чтобы добавить политику перезапуска в существующий контейнер:
Docker: добавьте политику перезапуска в уже созданный контейнер
Пример:
источник
на Mac вы можете увидеть изображение:
если вы щелкните правой кнопкой мыши значок докера, вы увидите:
альтернативно:
docker ps
а также
docker run hello-world
источник
Запустите эту команду в терминале:
Если докер не запущен, вы получите следующее сообщение:
источник
Как я проверяю SSH.Run:
Если ответ: не удалось установить соединение D-Bus: операция не разрешена
Это докер или контейнер WSL.
источник
docker ps -a
Вы можете увидеть все докер-контейнеры, живые они или мертвые.
источник