I created a container with -d
so it's not interactive.
docker run -d shykes/pybuilder bin/bash
I see that the container has exited:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6c45e8cc5f0 shykes/pybuilder:latest "bin/bash" 41 minutes ago Exited (0) 2 seconds ago clever_bardeen
Now I would like to run occasional commands on the machine and exit. Just to get the response.
I tried to start the machine. I tried attaching. I thought I could call run
with a container, but that does not seem to be allowed. Using start
just seems to run and then exist quickly.
I'd like to get back into interactive mode after exiting.
I tried:
docker attach d6c45e8cc5f0
But I get:
2014/10/01 22:33:34 You cannot attach to a stopped container, start it first
But if I start it, it exits anyway. Catch 22. I can't win.
A quick way to resume and access the most recently exited container:
Unfortunately it is impossible to override
ENTRYPOINT
with arguments withdocker run --entrypoint
to achieve this goal.So I think the answer is simpler than many misleading answers above.
To start an existing container which is stopped
To stop a running container
Then to login to the interactive shell of a container
To start an existing container and attach to it in one command
Beware, this will stop the container on exit. But in general, you need to start the container, attach and stop it after you are done.
Creating a container and sending commands to it, one by one:
Ex:
This is a combined answer I made up using the CDR LDN answer above and the answer I found here.
The following example starts an Arch Linux container from an image, and then installs
git
on that container using thepacman
tool:That is all.