Android

Como remover contêineres, imagens, volumes e redes de janela de encaixe

Como verificar e remover imagens e container no Docker 1.13

Como verificar e remover imagens e container no Docker 1.13

Índice:

Anonim

O Docker permite criar, testar e implantar rapidamente aplicativos como contêineres portáteis e auto-suficientes que podem ser executados virtualmente em qualquer lugar.

O Docker não remove objetos não utilizados, como contêineres, imagens, volumes e redes, a menos que seja solicitado explicitamente. Ao trabalhar com o Docker, você pode acumular facilmente um grande número de objetos não utilizados que consomem espaço em disco significativo e sobrecarregam a saída produzida pelos comandos do Docker.

Este guia serve como uma "folha de dicas" para ajudar os usuários do Docker a manter seu sistema organizado e a liberar espaço em disco removendo contêineres, imagens, volumes e redes não utilizados do Docker.

Removendo todos os objetos não utilizados

O comando de remoção do docker system prune removerá todos os contêineres parados, todas as imagens pendentes e todas as redes não utilizadas:

docker system prune

Você será solicitado a continuar, use o sinalizador -f ou --force para ignorar o prompt.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

Remoção de contêineres do Docker

Os contêineres do Docker não são removidos automaticamente quando você os para, a menos que você inicie o contêiner usando o sinalizador --rm .

Remova um ou mais contêineres

Para remover uma ou mais imagens do Docker, use o comando docker container rm seguido do ID dos contêineres que você deseja remover.

Você pode obter uma lista de todos os contêineres passando o sinalizador -a para o comando docker container ls :

docker container ls -a

A saída deve ser algo como isto:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

Depois de saber o CONTAINER ID do CONTAINER ID dos contêineres que você deseja excluir, passe-o para o comando docker container rm . Por exemplo, para remover os dois primeiros contêineres listados na saída acima, execute:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Remova todos os contêineres parados

Antes de executar o comando de remoção, é possível obter uma lista de todos os contêineres que não estão em execução (parados) que serão removidos usando o seguinte comando:

docker container ls -a --filter status=exited --filter status=created

Para remover todos os contêineres parados, use o comando docker container prune :

docker container prune

Você será solicitado a continuar, use o sinalizador -f ou --force para ignorar o prompt.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

Remova os recipientes usando filtros

O comando remoção do contêiner do docker container prune permite remover contêineres com base na condição usando o sinalizador de filtragem --filter .

No momento da redação deste artigo, os filtros atualmente suportados são at e label . Você pode usar mais de um filtro usando vários sinalizadores --filter .

Por exemplo, para remover todas as imagens criadas mais de 12 horas atrás, execute:

docker container prune --filter "until=12h"

Pare e remova todos os recipientes

Você pode obter uma lista de todos os contêineres do Docker em seu sistema usando o comando docker container ls -aq .

Para parar todos os contêineres em execução, use o comando docker container stop seguido de uma lista de todos os IDs de contêineres.

docker container stop $(docker container ls -aq)

Quando todos os contêineres estiverem parados, você poderá removê-los usando o comando docker container rm seguido da lista de IDs de contêineres.

docker container rm $(docker container ls -aq)

Remoção de imagens do Docker

Remova uma ou mais imagens

Para remover uma ou mais imagens do Docker, use o comando docker images ls para encontrar o ID das imagens que você deseja remover.

docker image ls

A saída deve ser algo como isto:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

Depois de localizar as imagens que deseja remover, passe seu IMAGE ID para o comando docker image rm . Por exemplo, para remover as duas primeiras imagens listadas na saída acima, execute:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

Remover imagens pendentes

O Docker fornece um comando de remoção de docker image prune que pode ser usado para remover imagens danificadas e não utilizadas.

Uma imagem pendente é uma imagem que não está marcada e não é usada por nenhum contêiner. Para remover imagens pendentes, digite:

docker image prune

Você será solicitado a continuar, use o sinalizador -f ou --force para ignorar o prompt.

WARNING! This will remove all dangling images. Are you sure you want to continue? y Ao remover imagens pendentes, se as imagens criadas por você não forem marcadas, elas também serão removidas.

Remova todas as imagens não utilizadas

Para remover todas as imagens que não são referenciadas por nenhum contêiner existente, não apenas as dangling, use o comando prune com o sinalizador -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

Remova imagens usando filtros

Com o comando docker image prune , você também pode remover imagens com base em uma determinada condição usando o sinalizador de filtragem --filter .

No momento da redação deste artigo, os filtros atualmente suportados são at e label . Você pode usar mais de um filtro usando vários sinalizadores --filter .

Por exemplo, para remover todas as imagens criadas mais de 12 horas atrás, você executaria:

docker image prune -a --filter "until=12h"

Removendo Volumes do Docker

Remova um ou mais volumes

Para remover um ou mais volumes do Docker, use o comando docker volume ls para encontrar o ID dos volumes que você deseja remover.

docker volume ls

A saída deve ser algo como isto:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

Depois de encontrar o VOLUME NAME dos volumes que deseja remover, passe-os para o comando docker volume rm . Por exemplo, para remover o primeiro volume listado na saída acima, execute:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

Remova todos os volumes não utilizados

Para remover todos os volumes não utilizados, use o comando docker image prune :

docker volume prune

Você será solicitado a continuar, use o sinalizador -f ou --force para ignorar o prompt.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

Removendo redes Docker

Remova uma ou mais redes

Para remover uma ou mais redes Docker, use o comando docker network ls para encontrar o ID das redes que você deseja remover.

docker network ls

A saída deve ser algo como isto:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

Depois de localizar as redes que você deseja remover, passe o NETWORK ID para o comando docker network rm . Por exemplo, para remover a rede com o nome my-bridge-network run:

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Remova toda a rede não utilizada

Use o comando docker network prune para remover todas as redes não utilizadas.

docker network prune

Você será solicitado a continuar, use o sinalizador -f ou --force para ignorar o prompt.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

Remover redes usando filtros

Com o comando docker network prune você pode remover redes com base na condição usando o sinalizador de filtragem --filter .

No momento da redação deste artigo, os filtros atualmente suportados são at e label . Você pode usar mais de um filtro usando vários sinalizadores --filter .

Por exemplo, para remover todas as redes criadas mais de 12 horas atrás, execute:

docker network prune -a --filter "until=12h"

Conclusão

Neste guia, mostramos alguns dos comandos comuns para remover contêineres, imagens, volumes e redes do Docker.

Você também deve verificar a documentação oficial do Docker.

estivador