Eu sou novo no docker. Estou escrevendo um script simples para docker. Preciso verificar se o docker está funcionando ou não. Existe um comando para verificar o nome do contêiner
Se você estiver procurando por um contêiner específico, pode executar:
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...
Para evitar problemas com um contêiner que está em um loop de falha e reiniciando constantemente para não mostrar que está ativo, o item acima pode ser melhorado marcando o Status
campo:
if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...
Se você quiser saber se o dockerd está sendo executado na máquina local e se o systemd está instalado, execute:
systemctl show --property ActiveState docker
Você também pode se conectar ao docker com docker info
ou docker version
e eles apresentarão um erro se o daemon não estiver disponível.
docker inspect …
dentro de uma if
instrução de um script bash?
if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
desde que iniciei meu contêiner com uma política de reinicialização, embora aqui "verdadeiro" seja o que você deseja evitar.
if
instrução acima , quando o contêiner não estiver em execução. Isso esconde o vômito indesejado para o caso falso: if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
Acabei usando
docker info
para verificar com um script bash se o mecanismo do docker está em execução.
docker info > /dev/null 2>&1
se você não precisa da saída
você pode verificar o estado do docker usando: systemctl is-active docker
➜ ~ systemctl is-active docker
active
você pode usá-lo como:
➜ ~ 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
, então você pode formatar a saída para verificar apenas o status adicionando este sinalizador:--format {{.Status}}
Liste todos os contêineres:
docker container ls -a
ls
= lista
-a
= all
Verifique a coluna "status"
Para usuários do OS X (Mojave 10.14.3)
Aqui está o que eu uso no meu script Bash para testar se o Docker está sendo executado ou não
# 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
Qualquer comando docker (exceto docker -v
), comodocker ps
If Docker is running, você obterá alguma resposta válida, caso contrário, você receberá uma mensagem que inclui "O daemon do docker está instalado e funcionando?"
Você também pode verificar seu gerenciador de tarefas.
Às vezes você não sabe o nome completo do contêiner, neste caso, isto funcionou para mim:
if docker ps | grep -q keyword
then
echo "Running!"
else
echo "Not running!"
exit 1
fi
Listamos todos os processos de contêiner em execução ( docker ps -a
nos mostraria também aqueles que não estão em execução, mas não é o que eu precisava), procuramos uma palavra específica ( grep
parte) e simplesmente falhamos se não encontrarmos pelo menos um contêiner em execução cujo nome contenha nosso palavra-chave.
Você pode verificar com este comando, systemctl status docker
ele mostrará o status da janela de encaixe. Se você quiser começar, pode usar em systemctl start docker
vez de, systemctl
também pode tentar com service
, service docker status
e service docker start
respectivamente.
systemd
como init.
systemctl status docker
mostrar corretamente se o serviço docker está em execução. Obrigado.
Você também pode verificar se um determinado contêiner do docker está em execução ou não usando o seguinte comando:
docker inspect postgres | grep "Running"
Este comando irá verificar se, por exemplo, meu contêiner postgres está rodando ou não e irá retornar a saída como "Running": true
Espero que isto ajude.
Corre:
docker version
Se o docker estiver em execução, você verá:
Client: Docker Engine - Community
Version: ...
[omitted]
Server: Docker Engine - Community
Engine:
Version: ...
[omitted]
Se o docker não estiver em execução, você verá:
Client: Docker Engine - Community
Version: ...
[omitted]
Error response from daemon: Bad response from Docker engine
Se o objetivo subjacente for "Como posso iniciar um contêiner quando o Docker é iniciado?"
Podemos usar Docker política de reinicialização
Para adicionar uma política de reinicialização a um contêiner existente:
Docker: adicione uma política de reinicialização a um contêiner que já foi criado
Exemplo:
docker update --restart=always <container>
Como faço o check-in SSH.Run:
systemctl
Se a resposta: Falha ao obter a conexão D-Bus: Operação não permitida
É um docker ou contêiner WSL.
docker ps -a
Você pode ver todos os contêineres do docker, estejam eles vivos ou mortos.
docker attach containerName
docker ps
docker ps
----- Este comando mostrará apenas contêineres em