A container can be made using the tool Docker to run apps. A fully contained virtual computer is what a Docker container is. Three different ways to docker SSH containers and commands are explained in this guide. If you as a user want to allow yourself to securely transfer files over an unsecured network first of all you need to enable ssh on Ubuntu and then your work could be half done.

For installing and maintaining applications. Docker has taken over the containerization industry as the de facto standard. Secure Shell (SSH) access to running containers is one of Docker’s significant features. We will go into the subject of SSH access to Docker containers. Here will discover how to connect to an active container and perform commands inside of it. Besides this, changing the SSH Linux port other than 22 is a reason that is to improve protection and avoid unnecessary invasions.

Understanding Docker and SSH:

  • Please give a brief explanation of SSH and its importance in secure remote access.
  • Introduce Docker and its advantages for managing and deploying applications.
  • Stress the importance of SSH access to Docker containers for administrative and debugging purposes.

SSH into an Active Docker Container:

  • As noted in the previous response, describe the procedures for gaining SSH access to a Docker container that is currently executing.
  • Knowing the container ID or name for SSH access should be emphasized.
  • Give an example command that will list active containers and show which one is the target container.

Option 1: Run Commands in a Docker Container Using Docker exec

The docker exec command executes a specified run command inside the docker container that is already operating. Through the creation of a bash shell (a shell where you can type commands), you can use it to SSH into a Docker container.

To run a command in a container using docker exec, use the following basic syntax:

docker exec [options] [container] [command]

If you haven’t already, start by downloading a Docker image. You could, for instance, load Nginx:

sudo docker pull nginx

docker pull image in command line

Then run the image,

sudo docker run ––name nginx–test –d nginx

docker run image command line

To confirm, list all active containers:

sudo docker ps

Your loaded nginx-test image should now be visible.

command to display list of all docker running containers

Type the following to gain access to and execute commands within that Docker container:

sudo docker exec –it nginx-test /bin/bash

You are now signed into the nginx-test container. Any instructions you type will therefore be executed in that container. The -t option enables a terminal typing interface, and the -i option selects interactive.

run commands on specific docker image
Option 2: Connect to a Running Container by Using the Docker Attach Command

Using the docker attach command, you can connect a container to a local input, output, and error stream. It starts up by default in a bash shell. Enter the following information to connect to a running container:

sudo docker attach container_Name

The system will connect to the nginx-test container in the example below:

sudo docker attach nginx-test

connect to docker image with docker attach

You will be working within the container once the command has been carried out. The virtual Docker environment will be affected by any commands you issue.

Option 3: Connect to a Docker Container via SSH.

A Docker container can be accessed using SSH (Secure Shell). SSH is typically used to connect remotely to a server across a network. Connecting to a virtual Docker container on your PC uses the same technology.

Step 1: System SSH Enable

Install and activate the SSH service first:

Switching on SSH in Ubuntu 18.04:

sudo apt-get install ssh
sudo systemctl ssh start
sudo systemctl ssh enable
service ssh status

On CentOS 7, activate SSH:

yum –y install openssh-server openssh-clients
service sshd start
service sshd enable
service sshd status

Step 2: Get the Container’s IP address.

Using the docker inspect command, filter the returned information to obtain the container’s IP address.

Use the following command for contemporary Docker engines:

sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" container_name

Run: for older Docker engines.

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

docker command to get ip address of docker container

Step 3: SSH Into a Container for Docker

To verify that the IP address is active, ping it.

ping –c 3 172.17.0.2

ping ip address to verify ssh into docker container

To connect to the image, use the SSH tool:

ssh root@172.17.0.2

The system should request the root user password for that container. Connection rejected indicates that the container is most likely not SSH provided. You are now connected through SSH and can issue commands inside the container if the prompt changes.

Wrapping Up the SSH into a Running Docker Container and Run Commands

List the main ideas covered in the blog post in brief. To manage and debug Docker containers, emphasize the value of secure SSH access. Encourage readers to learn about and use SSH. Access to improve their abilities to manage Docker containers. To know How to Delete Docker Images, Containers, and Volumes read it. To securely transfer files in different directories using a secure shell rsync over SSH protocol is used.

A conventional SSH connection is not advised because Docker containers are portable and light. Either docker exec or docker attaches are suggested ways to execute commands inside a Docker container. You might connect to a virtual machine through Docker. Use the docker-machine SSH command if you’re deploying many distant virtual machines. The first two command techniques are suggested for most users.