Docker Shell
You can use docker attach
to connect to a running docker process but I always seem to get a blank screen when I try this, probably because I refuse to stick to the one-process-per-container paradigm to do tricks with systemd.
There’s another way of getting a terminal on a docker container and thats to run the command:
docker exec -ti [CONTAINER-ID] bash
Thanks Stack Overflow!
Shell function
That’s a fair few arguments to remember though and I’d like to be able to connect to my docker instances easily, especially since running ssh daemons inside of every container is considered the work of the devil
With a small bash function, I can make my life a lot easier. I’ve created a simple shell function that wraps the above command in something easier to use.
Installation
Copy and paste the script below into the ~/.bashrc
file of the user your run docker as (if running via sudo, you will likely have issues)
https://gist.github.com/GeoffWilliams/4654f62f62f139a7ef63
Then logout and back in again.
Example
After installation, you will have a new docker subcommand: shell
:
docker shell CONTAINER_ID
Thats all there is to it - now you can get access to a shell on your container just as easily as typing vagrant ssh foo
;-)