Os con­ten­to­res ocupam muito espaço de ar­ma­ze­na­mento e recursos no sistema anfitrião. Se eliminar os con­ten­to­res que já não utiliza, poderá libertar espaço e melhorar o de­sem­pe­nho do sistema.

Quando se deve eliminar os con­ten­to­res do Docker?

Os con­ten­to­res Docker são unidades exe­cu­tá­veis isoladas que contêm apli­ca­ções e as suas de­pen­dên­cias. Para garantir que o ambiente Docker seja eficiente, seguro e or­ga­ni­zado, é ne­ces­sá­rio eliminar con­ten­to­res em de­ter­mi­na­das situações.

Em qualquer caso, deve eliminar os con­ten­to­res após a sua uti­li­za­ção. Assim que uma tarefa ou um processo de um contentor estiver concluído, recomenda-se eliminá-lo do ambiente. Desta forma, evita-se que os con­ten­to­res inativos ocupem recursos e espaço des­ne­ces­sa­ri­a­mente.

É também acon­se­lhá­vel eliminar os con­ten­to­res que já não sejam uti­li­za­dos ou que não tenham sido atu­a­li­za­dos há muito tempo. Esta medida é es­pe­ci­al­mente im­por­tante para minimizar os riscos de segurança, uma vez que os con­ten­to­res mais antigos podem conter versões de software vul­ne­rá­veis ou obsoletas.

Se suspeitar que um contêiner não é seguro, deve eliminá-lo ime­di­a­ta­mente. Deve fazer o mesmo com os con­têi­ne­res que não conseguem iniciar devido a conflitos ou outros problemas.

Apagar um ou vários con­ten­to­res

Quando existem con­ten­to­res des­ne­ces­sá­rios ou inativos no host, um dos pro­ce­di­men­tos habituais consiste em eliminar um ou mais con­ten­to­res.

Passo 1. Se­le­ci­o­nar os nomes ou IDs dos con­ten­to­res

Em primeiro lugar, tem de saber quais os nomes ou IDs dos con­ten­to­res que deve eliminar. Para obter uma lista de todos os con­ten­to­res parados e em execução, pode utilizar o seguinte comando:

docker ps -a
bash

Passo 2. Apagar con­ten­to­res

Basta in­tro­du­zir o comando **docker rm** seguido dos IDs ou nomes dos con­ten­to­res, separados por um espaço:

docker rm container_id_or_name1 container_id_or_name2
bash

Eliminar um contentor após a sua execução

Para eliminar au­to­ma­ti­ca­mente um contentor Docker, adicione o parâmetro --rm ao executar o contentor com o comando docker run. Graças a este parâmetro, o contentor é eliminado au­to­ma­ti­ca­mente assim que deixar de ser utilizado.

docker run --rm image_name
bash

Eliminar todos os con­ten­to­res que já ter­mi­na­ram a sua execução

Também é possível eliminar de uma só vez todos os con­ten­to­res que ter­mi­na­ram a sua execução, filtrando-os pelo seu estado e uti­li­zando o comando rm.

Passo 1. Listar con­ten­to­res con­cluí­dos

Podes filtrar a lista de con­ten­to­res uti­li­zando a opção -f status=exited para mostrar apenas os con­ten­to­res con­cluí­dos.

docker ps -a -f status=exited
bash

Passo 2. Eliminar con­ten­to­res con­cluí­dos

Utilize o resultado do passo anterior para obter os IDs dos con­ten­to­res con­cluí­dos. Passe-os di­re­ta­mente para o comando docker rm.

docker rm $(docker ps -a -f status=exited -q)
bash

Eliminar con­ten­to­res no Docker com mais de um filtro

Para eliminar con­ten­to­res uti­li­zando vários filtros, pode utilizar o comando docker ps jun­ta­mente com as opções de filtro cor­res­pon­den­tes e, em seguida, passar os IDs re­sul­tan­tes para o comando docker rm.

Passo 1. Listar con­ten­to­res com filtros

Em primeiro lugar, deve in­tro­du­zir-se o comando docker ps com as opções de filtro para obter uma lista dos con­ten­to­res de acordo com os filtros pre­ten­di­dos. O estado «created» pode ser se­le­ci­o­nado jun­ta­mente com «exited». O estado «created» refere-se a con­ten­to­res que foram criados, mas que ainda não foram exe­cu­ta­dos.

docker ps -a -f status=exited -f status=created
bash

Passo 2. Apagar con­ten­to­res do Docker

Tal como no exemplo anterior, deves escrever docker rm com o resultado que obtiveste.

docker rm $(docker ps -a -f status=exited -f status=created -q)
bash

Eliminar con­ten­to­res de acordo com um padrão

Uma forma eficaz de eliminar con­ten­to­res de forma seletiva é iden­ti­fi­car todos os con­ten­to­res que cor­res­pon­dem a um padrão. Em seguida, deve eliminá-los uti­li­zando os passos awk, xargs e docker rm.

Passo 1. Encontrar todos os con­ten­to­res com um padrão

Ao utilizar o comando docker ps -a em com­bi­na­ção com grep, irá obter todos os con­ten­to­res cujos nomes ou etiquetas cor­res­pon­dam a um padrão es­pe­cí­fico. Por exemplo, pode listar os con­ten­to­res cujos nomes comecem por «test-»:

docker ps -a | grep "test-"
bash

Passo 2. Eliminar con­ten­to­res no Docker

Através do comando awk, é possível se­le­ci­o­nar colunas es­pe­cí­fi­cas do resultado. Neste caso, pre­ten­de­mos extrair a primeira coluna, que contém os IDs dos con­ten­to­res. Por fim, pode-se utilizar xargs para passar os IDs para o comando docker rmi e eliminar os con­ten­to­res do Docker.

docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmi
bash

Parar e eliminar todos os con­ten­to­res do Docker

Pode parar e eliminar todos os con­ten­to­res ativos e inativos do sistema de uma só vez, o que pode ser útil ao realizar uma limpeza completa do ambiente Docker.

Passo 1. Listar os con­ten­to­res

Para verificar a lista de con­ten­to­res, deve digitar o seguinte comando:

docker ps -a
bash

Passo 2. Parar os con­ten­to­res

Depois de fazer a sua seleção, envie o resultado para docker stop. Desta forma, todos os con­ten­to­res serão parados.

docker stop $(docker ps -a -q)
bash

Passo 3. Eliminar con­ten­to­res no Docker

Assim que todos os con­ten­to­res estiverem parados, pode eliminá-los uti­li­zando o comando docker rm:

docker rm $(docker ps -a -q)
bash

Ao contrário dos con­ten­to­res Docker normais, os volumes Docker são me­ca­nis­mos que permitem armazenar e trocar dados entre os con­ten­to­res e o sistema anfitrião. No nosso guia, en­con­trará tutoriais sobre como eliminar volumes Docker ou como eliminar imagens Docker.

Ir para o menu principal