Running Ephemeral Docker Containers – Automatically Remove a Docker Container After Running It

Posted on In Linux, Software, Tutorial, Virtualization

Docker is a convenient tool to quick create containers from different Linux images. If we use the common way to start a docker container like docker run image bash, after the the process exists, the container is still stored there. That is, the docker container persists after it has exited. Sometimes, we would like to do quick tests and tries in some Linux environments in the docker images. And after the program exits, we would like to have the exited container automatically removed.

Start a docker container that will be automatically removed after being stopped

Docker has the support for this kinds of usage. The key option is to use the --rm option for the docker run command.

  --rm true|false
   Automatically remove the container when it exits. The default is false.
  --rm flag can work together with -d, and auto-removal will be done on 
   daemon side.
   Note that it's incompatible with any restart policy other than none.

To start a docker container (from ubuntu:18.04, run bash) that will be automatically removed (deleted):

$ docker run -it --rm ubuntu:18.04 bash

Verify the container will be automatically removed

After we run that, a new container will be created and the bash shell is ready:

root@e18acbc47561:/# 

Now the container can be listed by docker ps:

$ docker ps
CONTAINER ID   IMAGE          COMMAND   CREATED         STATUS         PORTS     NAMES
e18acbc47561   ubuntu:18.04   "bash"    7 minutes ago   Up 7 minutes             priceless_matsumoto

Now let’s exit the cotainer by running exit in the container:

root@e18acbc47561:/# exit
exit

Then, let’s verify the container is really removed using docker ps -a so that all stopped containers will be shown too:

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

The container is gone as expected.

Leave a Reply

Your email address will not be published. Required fields are marked *