简体   繁体   中英

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.

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

尽管上面的命令仍然有效,但下面的命令使用了Docker的新语法

docker container run -it --rm centos bash

I use the alias dr

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

That gives you:

dr myimage
ls
...
exit

No more container running.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM