No Ubuntu 14.04 (Trusty Tahr), estou procurando uma maneira de parar um contêiner em execução e as únicas informações que tenho são o nome da imagem que foi usada no comando Docker run.
Existe um comando para encontrar todos os contêineres em execução correspondentes que correspondam ao nome da imagem e pará-los?
docker
ubuntu
docker-image
Collin Estes
fonte
fonte
ps -a
. Recipientes removidos ... bem, eles são removidos, não existem mais.As respostas anteriores não funcionaram para mim, mas isso funcionou:
fonte
Você pode iniciar o contêiner definindo um nome de contêiner:
A mesma imagem pode ser usada para girar vários contêineres, portanto, é uma boa maneira de iniciar um contêiner. Então você pode usar esse nome de contêiner para parar, anexar ... o contêiner:
fonte
sudo docker build . -t <img-name> && sudo docker stop <container-name> || true && sudo docker run -d --rm --name <container-name> <img-name>
Este código irá parar todos os contêineres com a imagem centos: 6 . Não consegui encontrar uma solução mais fácil para isso.
Ou ainda mais curto:
fonte
Duas maneiras de parar de executar um contêiner:
Você pode executar contêineres usando o seguinte comando:
Links a seguir para obter mais informações:
fonte
$docker
? Ou é$
do prompt do shell?Para o Docker versão 18.09.0, descobri que o sinalizador de formato não será necessário
fonte
Pare o contêiner do Docker pelo nome da imagem:
Pare o contêiner do docker por nome e tag da imagem:
Se você criou a imagem, poderá adicionar uma etiqueta a ela e filtrar os contêineres em execução por etiqueta.
Métodos não confiáveis
nem sempre funciona
filtra pelo nome do contêiner, não pelo nome da imagem
é problemático, pois o nome da imagem pode aparecer em outras colunas para outras imagens
fonte
Eu fiz um
/usr/local/bin/docker.stop
que leva o nome da imagem (assume que você tem apenas um em execução).fonte
Eu estava tentando envolver meus comandos do Docker em tarefas gulp e percebi que você pode fazer o seguinte:
Isso pode não funcionar para cenários em que você tenha vários contêineres com o mesmo nome (se isso for possível), mas, para o meu caso de uso, foi perfeito.
fonte
No meu caso,
--filter ancestor=<image-name>
não estava funcionando, então o comando a seguir limpou o contêiner do Docker para mim:fonte
listar todos os contêineres com informações e ID
fonte
Adicionando sobre a excelente resposta do @VonC, aqui está uma função ZSH que você pode adicionar ao seu arquivo .zshrc:
Em sua linha de comando, basta fazer
dockstop myImageName
e ele irá parar e remover todos os contêineres que foram iniciados a partir de uma imagem chamada myImageName.fonte
Isso deve ser suficiente.
fonte
use: container docker stop $ (container docker ls -q --filter ancestor = mongo)
fonte
Se você preferir uma
AWK
abordagem simples , aqui está a minha opinião:$(docker ps | awk '{ if($2 == "<your image name>") { print $NF}}')
- imprime os nomes dos contêineres do docker com base na imagem de entradadocker ps
- listar todos os contêineresawk '{ if($2 == "<your-image-name>") { print $NF}}'
- A segunda coluna analisada dedocker ps
fornece o nome da imagem. Comparando-o com o nome da sua imagem, será executado oprint $NF
que imprime o nome do contêiner.docker rm -f
remove os recipientesPor exemplo, remover todos os contêineres em execução da imagem do ubuntu, pode ser feito simplesmente como:
PS: Lembre-se de incluir a tag da imagem no AWK, pois é um comparador igual.
fonte
Você pode usar o
ps
comando para dar uma olhada nos contêineres em execução:A partir daí, você deverá ver o nome do seu contêiner junto com o ID do contêiner que procura. Aqui está mais informações sobre
docker ps
.fonte