This is our third article in this series. Today’s guide is about how to access Docker containers after creating it, And how to expose the network of a container.

Once we launch a container from an image sure next our thought will be how can we SSH into the container or how to access the SHELL of it. Let first see how to log in.

Articles related to Docker Series:
  1. How to install Docker on Red Hat Enterprise Linux and CentOS Linux 7
  2. How to search for docker images and launch a container
  3. How to connect Docker containers and expose the network
  4. How to manage Docker containers

Step 1: Accessing the container SHELL

To login into a container it possible while launching it, Else we can access the shell anytime by using “exec -it /bin/bash” option.

# docker exec -it nginx-test-server /bin/bash # To access the SHELL after launching a container.

 

  • -i                  To take an interactive shell
  • -t                 To acquire a TTY
  • -exec          To run a command in running container.





Type “exit” to come out of the container and try with creating a new container, Moreover, access its shell in a single go.

# docker run --name new-test-server -it nginx /bin/bash # To launch a container and accessing the shell.

 

how to connect docker containers

how to connect docker containers

 

Step 2: Inspect the network port of a running container

When a docker container launched we cannot access it from outside, But same time container can communicate to the outside world without any restriction. To access from the outside world we need to bind ports while starting a container so that it will create an IPtables masquerading rule which allows the outside world to access the container.

Now let us bind the port (8080) from Docker host to container port (80), By doing a bind we can reach the web server running on the container. While launching one it possible to assign with forwarding a port as shown in below figure.

# docker run --name newIP-test-server -p 8080:80 -d -it nginx

 

Starting docker container with port forwarding

Starting docker container with port forwarding

  • –name        Name of the container about to create
  • -p                  To specify the forwarding port from source to destination
  • -d                  Running a container in Detached mode
  • -i                   To take an interactive shell
  • -t                   To acquire a TTY

To know the IP address of running container and it exposed port we can use “inspect” option.

By running inspect on a container it will print all the information about the container.

# docker inspect newIP-test-server

 

To know the IPAddress and ports exposed from container use a grep.

# docker inspect newIP-test-server | grep -i -A 1 'IPAddress\|ExposedPorts'

 

In case only need to know the “IPAddress” use with inspect “-f” option and argument.

# docker inspect -f '{{ .NetworkSettings.IPAddress }}' newIP-test-server

 

Or to know the only “Exposed port” from a container.

# docker inspect -f '{{ .Config.ExposedPorts }}' newIP-test-server

 

Inspect IP Address of running docker containers

Inspect IP Address of running docker containers




Let’s verify the iptables rules in the host, We can notice it added with two rules.

Postrouting iptables rule for docker containers

Postrouting iptables rule for docker containers

 

Now we come to know the IPAddress and port of Nginx container. Its time to verify, let us try to reach the web server using curl. If we get “Nginx welcome page” we are good with all above steps.

# curl http://localhost:8080

 

Accessing web server of docker container

Verify web server running on Docker container




Even we can specify an IP address for the port forwarding as follows.

# docker run -d --name web_server_with_ip -p 192.168.107.107:8080:80 nginx

 

Starting a docker container with specific IP forwarding

Starting a docker container with specific IP forwarding

That’s it, we have launched a Docker container and inspected the IP/Port of it. Then we have exposed the network to access from anywhere.

Conclusion:

After launching a container we have accessed its shell, by following we have exposed the network to reach the web server. In the upcoming articles, we will cover with more topic related to Docker. Till then subscribe to our newsletter and stay to receive the updates.

Babin Lonston
Overall 14+ Years of experience in IT field, 7+ years of experience in Linux administration with Virtualization & Cloud technologies. Love documentation and being Numismatics for a long time.

How to search for docker images and launch a container

Previous article

How to manage Docker containers

Next article

You may also like

Comments

Leave a reply

Your email address will not be published.