Chris Bedford
Chris Bedford

Reputation: 2702

how to "docker run" a shell session on a minimal linux install and immediately tear down the container?

I just started using Docker, and I like it very much, but I have a clunky workflow that I'd like to streamline. When I'm iterating on my Dockerfile script I will often test things out after a build by launching a bash session, running some commands, finding out that such and such package didn't get installed correctly, then going back and tweaking my Dockerfile.

Let's say I have built my image and tagged it as buildfoo, I'd run it like this:

      $>  docker run -t -i  buildfoo 

              ... enter some bash commands.. then  ^D to exit

Then I will have a container running that I have to clean up. Usually I just nuke everything like this:

docker rm --force `docker ps -qa`

This works OK for me.. However, I'd rather not have to manually remove the container.

Any tips gratefully accepted !


Some Additional Minor Details:

Running minimal centos 7 image and using bash as my shell.

Upvotes: 11

Views: 21146

Answers (3)

ruby_slinger
ruby_slinger

Reputation: 131

Even though the above still works, the command below makes use of Docker's newer syntax

docker container run -it --rm centos bash

Upvotes: 4

spectre007
spectre007

Reputation: 1539

Please use -rm flag of docker run command. --rm=true or just --rm.

It automatically remove the container when it exits (incompatible with -d). Example:

docker run -i -t --rm=true centos /bin/bash

or

docker run -i -t --rm centos /bin/bash

Upvotes: 19

VonC
VonC

Reputation: 1328292

I use the alias dr

alias dr='docker run -it --rm'

That gives you:

dr myimage
ls
...
exit

No more container running.

Upvotes: 1

Related Questions