I have been installing and exposing SSH on most of the containers I have deployed, which I know is wrong.

As I have been trying to do things in a more “devops” way I decided to do a little reading on how I can enter and leave running containers on my CentOS 7 instance without having to expose SSH or configure users.

This is when I came across nsenter & docker-enter. As you can see from the following instructions and terminal session installing nsenter and then using docker-enter to connect to a running container is a breeze;

docker run — rm jpetazzo/nsenter cat /nsenter > /tmp/nsenter
mv /tmp/nsenter /usr/local/bin/
chmod 755 /usr/local/bin/nsenter
nsenter -V
nsenter — help
curl -o /usr/local/bin/docker-enter https://raw.githubusercontent.com/jpetazzo/nsenter/master/docker-enter 
chmod 755 /usr/local/bin/docker-enter

Now you have installed nsenter and docker-enter you need to lauch a container to conect to;

docker run -d -p 3306:3306  name testing russmckendrick/mariadb
docker logs testing
docker-enter testing # Enters the container, type exit to exit o_O
docker-enter testing ls -lha /var/lib/mysql/ # Lists the contents of /var/lib/mysql/
docker-enter testing ps -aux # Shows the running processes

You can view this process in the embedded terminal session below or on my asciinema profile

Installing nsenter