Apagar um contêiner no Docker: aprenda a libertar espaço
Os contentores ocupam muito espaço de armazenamento e recursos no sistema anfitrião. Se eliminar os contentores que já não utiliza, poderá libertar espaço e melhorar o desempenho do sistema.
Quando se deve eliminar os contentores do Docker?
Os contentores Docker são unidades executáveis isoladas que contêm aplicações e as suas dependências. Para garantir que o ambiente Docker seja eficiente, seguro e organizado, é necessário eliminar contentores em determinadas situações.
Em qualquer caso, deve eliminar os contentores após a sua utilizaçã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 contentores inativos ocupem recursos e espaço desnecessariamente.
É também aconselhável eliminar os contentores que já não sejam utilizados ou que não tenham sido atualizados há muito tempo. Esta medida é especialmente importante para minimizar os riscos de segurança, uma vez que os contentores mais antigos podem conter versões de software vulneráveis ou obsoletas.
Se suspeitar que um contêiner não é seguro, deve eliminá-lo imediatamente. Deve fazer o mesmo com os contêineres que não conseguem iniciar devido a conflitos ou outros problemas.
Apagar um ou vários contentores
Quando existem contentores desnecessários ou inativos no host, um dos procedimentos habituais consiste em eliminar um ou mais contentores.
Passo 1. Selecionar os nomes ou IDs dos contentores
Em primeiro lugar, tem de saber quais os nomes ou IDs dos contentores que deve eliminar. Para obter uma lista de todos os contentores parados e em execução, pode utilizar o seguinte comando:
docker ps -abashPasso 2. Apagar contentores
Basta introduzir o comando **docker rm** seguido dos IDs ou nomes dos contentores, separados por um espaço:
docker rm container_id_or_name1 container_id_or_name2bashEliminar um contentor após a sua execução
Para eliminar automaticamente 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 automaticamente assim que deixar de ser utilizado.
docker run --rm image_namebashEliminar todos os contentores que já terminaram a sua execução
Também é possível eliminar de uma só vez todos os contentores que terminaram a sua execução, filtrando-os pelo seu estado e utilizando o comando rm.
Passo 1. Listar contentores concluídos
Podes filtrar a lista de contentores utilizando a opção -f status=exited para mostrar apenas os contentores concluídos.
docker ps -a -f status=exitedbashPasso 2. Eliminar contentores concluídos
Utilize o resultado do passo anterior para obter os IDs dos contentores concluídos. Passe-os diretamente para o comando docker rm.
docker rm $(docker ps -a -f status=exited -q)bashEliminar contentores no Docker com mais de um filtro
Para eliminar contentores utilizando vários filtros, pode utilizar o comando docker ps juntamente com as opções de filtro correspondentes e, em seguida, passar os IDs resultantes para o comando docker rm.
Passo 1. Listar contentores com filtros
Em primeiro lugar, deve introduzir-se o comando docker ps com as opções de filtro para obter uma lista dos contentores de acordo com os filtros pretendidos. O estado «created» pode ser selecionado juntamente com «exited». O estado «created» refere-se a contentores que foram criados, mas que ainda não foram executados.
docker ps -a -f status=exited -f status=createdbashPasso 2. Apagar contentores 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)bashEliminar contentores de acordo com um padrão
Uma forma eficaz de eliminar contentores de forma seletiva é identificar todos os contentores que correspondem a um padrão. Em seguida, deve eliminá-los utilizando os passos awk, xargs e docker rm.
Passo 1. Encontrar todos os contentores com um padrão
Ao utilizar o comando docker ps -a em combinação com grep, irá obter todos os contentores cujos nomes ou etiquetas correspondam a um padrão específico. Por exemplo, pode listar os contentores cujos nomes comecem por «test-»:
docker ps -a | grep "test-"bashPasso 2. Eliminar contentores no Docker
Através do comando awk, é possível selecionar colunas específicas do resultado. Neste caso, pretendemos extrair a primeira coluna, que contém os IDs dos contentores. Por fim, pode-se utilizar xargs para passar os IDs para o comando docker rmi e eliminar os contentores do Docker.
docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmibashParar e eliminar todos os contentores do Docker
Pode parar e eliminar todos os contentores 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 contentores
Para verificar a lista de contentores, deve digitar o seguinte comando:
docker ps -abashPasso 2. Parar os contentores
Depois de fazer a sua seleção, envie o resultado para docker stop. Desta forma, todos os contentores serão parados.
docker stop $(docker ps -a -q)bashPasso 3. Eliminar contentores no Docker
Assim que todos os contentores estiverem parados, pode eliminá-los utilizando o comando docker rm:
docker rm $(docker ps -a -q)bashAo contrário dos contentores Docker normais, os volumes Docker são mecanismos que permitem armazenar e trocar dados entre os contentores e o sistema anfitrião. No nosso guia, encontrará tutoriais sobre como eliminar volumes Docker ou como eliminar imagens Docker.