# 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:

```bash
docker ps -a
```

### Passo 2. Apagar contentores

Basta introduzir o comando \*\*`docker rm**` seguido dos IDs ou nomes dos contentores, separados por um espaço:

```bash
docker rm container_id_or_name1 container_id_or_name2
```

## Eliminar 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.

```bash
docker run --rm image_name
```

## Eliminar 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.

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

### Passo 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`.

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

## Eliminar 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.

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

### Passo 2. Apagar contentores do Docker

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

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

## Eliminar 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-»:

```bash
docker ps -a | grep "test-"
```

### Passo 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.

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

## Parar 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:

```bash
docker ps -a
```

### Passo 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.

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

### Passo 3. Eliminar contentores no Docker

Assim que todos os contentores estiverem parados, pode eliminá-los utilizando o comando `docker rm`:

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

Ao 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](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/apagar-volumes-no-docker/) ou como [eliminar imagens Docker](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/apagar-imagens-do-docker/).


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/apagar-contentores-do-docker/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/apagar-contentores-do-docker/) for AI/LLM consumption.