# Eliminare i container Docker e risparmiare risorse preziose

I container consumano spazio di archiviazione e risorse del tuo host. Eliminando i container non più necessari, puoi liberare spazio prezioso e migliorare le prestazioni del tuo sistema.

## Quando dovresti eliminare i container Docker?

I [container Docker](https://www.ionos.it/digitalguide/server/know-how/container-docker/) sono **unità isolate ed eseguibili** che contengono applicazioni e le relative dipendenze. Ci sono diverse situazioni in cui ti conviene eliminare i container Docker per garantire l’efficienza, la sicurezza e la monitorabilità del tuo ambiente Docker.

Per prima cosa dovresti **cancellare i container dopo l’uso**. Una volta che un container ha completato con successo il compito o processo specifico per cui è stato creato, è consigliabile rimuoverlo dall’ambiente. In questo modo eviti che i container inattivi continuino a occupare risorse e spazio inutilmente.

È altrettanto consigliabile eliminare i container non più in uso o che non vengono aggiornati da molto tempo. Questo è particolarmente importante per ridurre al minimo i **rischi di sicurezza**, in quanto i container più vecchi potrebbero utilizzare versioni obsolete del software e presentare quindi falle di sicurezza.

Se hai dei dubbi sulla sicurezza di un container o se sospetti che possa essere compromesso, eliminalo immediatamente. Lo stesso vale per i container che non possono essere avviati a causa di conflitti o altri problemi.

## Cancellare uno o più container Docker

La rimozione di uno o più container Docker specifici è un procedimento comune per **eliminare dall’host i container non più necessari o inattivi**.

### Primo passaggio: individuare gli ID o i nomi dei container

Per prima cosa devi risalire agli **ID o ai nomi** dei container che desideri eliminare. Puoi utilizzare il seguente comando per visualizzare un elenco di tutti i container arrestati e in esecuzione:

```bash
docker ps -a
```

### Secondo passaggio: cancellare i container

Puoi inserire facilmente gli ID o i nomi dei container, separati da uno spazio, dopo il comando **docker rm**:

```bash
docker rm container_id_or_name1 container_id_or_name2
```

## Rimuovere un container al termine dell’esecuzione

Per rimuovere automaticamente un container Docker al termine della sua esecuzione, imposta il flag `--rm` al momento dell’avvio del container con il comando `docker run`. Questo flag fa sì che il container venga **eliminato automaticamente** non appena viene arrestato.

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

## Cancellare tutti i container Docker terminati

Puoi anche eliminare i container terminati tutti insieme, filtrandoli in base al loro stato e rimuovendoli con il comando `rm`.

### Primo passaggio: elencare i container arrestati

Con l’opzione `-f status=exited` filtri l’elenco dei container per visualizzare solo quelli arrestati.

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

### Secondo passaggio: rimuovere i container terminati

Utilizza il risultato del passaggio precedente per ottenere gli ID dei container terminati e inoltrarli direttamente al comando `docker rm`.

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

## Eliminare i container con più filtri

Puoi rimuovere i container Docker con più di un filtro utilizzando il comando `docker ps` **combinandolo con le opzioni dei filtri** e poi inoltrare l’output al comando `docker rm`.

### Primo passaggio: elencare i container con i filtri

Prima di tutto, inserisci il comando `docker ps` con i filtri desiderati per ottenere un elenco dei container che stai cercando. “created” ed “exited” sono due degli stati che puoi indicare. I container con lo **stato created** sono quelli che sono stati creati ma non ancora eseguiti.

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

### Secondo passaggio: eliminare i container Docker

Analogamente all’esempio precedente, inoltriamo i risultati al comando `docker rm`.

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

## Rimuovere il container secondo uno schema

Un’altra opzione efficace per rimuovere selettivamente i container è quella di trovare tutti i container Docker che corrispondono a uno schema specifico e successivamente eliminarli **con `awk`, `xargs` e `docker rm`**

### Primo passaggio: trovare tutti i container di un determinato schema

Se utilizzi il comando `docker ps -a` in combinazione con `grep`, ottieni tutti i container i cui nomi o tag corrispondono a uno specifico schema. Ad esempio, puoi visualizzare i container il cui nome inizia con “test”:

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

### Secondo passaggio: rimuovere i container Docker

Il comando `awk` ti permette di **selezionare colonne specifiche dal risultato ottenuto**. Nell’esempio successivo, viene estratta la prima colonna, che contiene gli ID del container. Infine, puoi utilizzare `xargs` per inoltrare gli ID al comando `docker rmi` ed eliminare i container Docker corrispondenti.

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

## Arrestare ed eliminare tutti i container

Puoi arrestare ed eliminare tutti i container attivi e inattivi sul tuo sistema in un’unica operazione. Questo risulta utile se vuoi **ripulire completamente l’ambiente Docker**.

### Primo passaggio: elencare i container

Utilizza il comando seguente per verificare l’elenco dei container presenti nel tuo sistema:

```bash
docker ps -a
```

### Secondo passaggio: arrestare i container

Dopo aver identificato tutti i container e aver deciso quali arrestare, inoltra l’elenco a `docker stop`. Questo comando arresterà tutti i container in esecuzione.

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

### Terzo passaggio: eliminare i container Docker

Dopo aver arrestato tutti i container in esecuzione, li puoi rimuovere con il comando `docker rm`:

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

A differenza dei normali container Docker, i [volumi dei container Docker](https://www.ionos.it/digitalguide/server/know-how/volumi-dei-container-docker/) sono meccanismi con cui è possibile conservare e scambiare dati tra i container e l’host. Nella nostra guida trovi altri tutorial su come [eliminare un volume Docker](https://www.ionos.it/digitalguide/server/configurazione/eliminare-i-volumi-docker/) o [cancellare un’immagine Docker](https://www.ionos.it/digitalguide/server/configurazione/eliminare-le-immagini-docker/).


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/eliminare-i-container-docker/](https://www.ionos.it/digitalguide/server/configurazione/eliminare-i-container-docker/) for AI/LLM consumption.