Reputation: 2702
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
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
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
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