Qadry
unixcop Admin

How to SSH into a Docker Container and Run Commands

Introduction

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.

Docker is a utility that lets you create a container for running applications. A Docker container is a fully-contained virtual machine.

This guide will show you three methods to SSH into a Docker container and run commands.

Method 1:

  • Use docker exec to Run Commands in a Docker Container

The docker exec command runs a specified command within an already running container.

You can use it to SSH into a Docker container by creating a bash shell.

Syntax for using docker exec

docker exec (options) (container) (The_command)
  • Pull a Docker image if you haven’t. you can load apache for example:
sudo docker pull httpd
  • Then run the container with
sudo docker run --name apache-test -d httpd
  • List all running containers to check if the container listed or not
sudo docker ps
  • To access it and run commands in that container, run
sudo docker exec -it apache-test /bin/bash

The –i option specifies interactive

The –t enables a terminal typing interface.

Now, any commands you enter will run in that container.

Method 2:

  • Use the docker attach Command to Connect to a Running Container

The docker attach command links a local input, output, and error stream to a container.

  • To connect to a running container, run
sudo docker attach (The_container_Name)

Now, we will connect to the apache-test container with the following command line.

sudo docker attach apache-test

Method 3:

  • We will use SSH to Connect to a Docker Container

You can connect to a Docker container using SSH (Secure Shell).

  • Install, start and enable ssh

On CentOS:

dnf install -y openssh-server openssh-clients && systemctl start sshd && systemctl enable sshd 

On Ubuntu:

sudo apt-get install ssh && sudo systemctl start sshd && sudo systemctl enable sshd 
  • Get IP Address of Docker Container

Get the container’s IP address by using the docker inspect command and filtering out the results.

For modern Docker engines, run

sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" (The_container_name)

For older Docker engines, run

[root@unixcop ~]# docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' (The_container_name)
172.17.0.1
[root@unixcop ~]# 
  • SSH Into Docker Container by using the SSH command to connect to the container
ssh root@172.17.0.2

The system should ask for a password of the root user for that container

Now, you can run commands in the container.

Conclusion

So, That’s it

In this tutorial, we shew you how to SSH into a Running Docker Container and Run Commands via three methods.

Thanks

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest articles

x