
Hello Readers… I hope you all are doing fine. So in this blog we are going to learn another and interesting topic of docker. Stay tuned.
Introduction:
Docker is a utility that you can use to create a container to run your application. A Docker container is a fully contained virtual machine.
I am sharing with you all the three ways to SSH into a Running Docker container with it’s illustration:
Requirements:
- Linux system with Docker
- Preconfigured container to be loaded and run
- Access Terminal Window / Command Prompt
Method 1: Use docker exec to Run Commands in a Docker Container :
The docker exec command executes the command specified in a container that is already running. You can use this to send SSH to a Docker container by creating a bash shell.
The basic syntax for using docker exec
to run a command in containers is:
docker exec [options] [container] [command]
So; Start by pulling a Docker image if you haven’t already. For example, you can load Nginx:
sudo docker pull nginx



Then, run the image:
docker run ––name nginx–test –d nginx



List all running containers to verify:
docker ps -a



To get access and run commands in that Docker container, type the following:
docker exec –it nginx-test /bin/bash



You are now signed in to the nginxtest container. Therefore, all the commands you enter will be executed in this container. The –i option specifies interactive and –t enables the interface for terminal input.
Method 2: Use the docker attach Command to Connect to a Running Container:
The docker attach command links local inputs, outputs, and error streams to the container. By default, it starts in a bash shell. To connect to a running container, type:
sudo docker attach container_Name
let’s take one example of nginx:
docker attach nginx-test



When the command is executed, it works in the container. Every command you run affects your Docker virtual environment.
Method 3: Use SSH to Connect to a Docker Container :
Step 1: Enable SSH on System :
Start by installing and enabling the SSH service:
sudo apt-get install ssh
sudo systemctl ssh start
sudo systemctl ssh enable
service ssh status
Step 2: Get IP Address of Container :
There are one command to get ip address of container i.e
sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name
Let’s take one example:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx-test



Here; we get a ip address of container;
Step 3: SSH into Docker Container :
Ping the IP address to make sure it’s available:
ping –c 3 172.17.0.2



Use the SSH tool to connect to the image:
ssh root@172.17.0.2



If the connection is denied, the container may not be provisioned for SSH. If the prompt changes, you can connect via SSH and execute commands in the container.
Conclusion:
So; In this blog we know how to play running docker container with ssh commands. Docker containers are lightweight and transitional, so a traditional SSH connection isn’t recommended.Most recommended method to run commands in a Docker container is either docker exec
or docker attach
.