Docker Networking

1 hour
  • 5 Learning Objectives

About this Hands-on Lab

You are developing a new containerized application for a client. The application will consists of two containers: one for the frontend application, and one for the database. Your client has security concerns about the database, and they want it to run on a private network that is not publicly accessible.

You will need to create two networks. One will house the frontend application that is publicly accessible, and the other network, which is flagged as internal, is where the database will reside. Create a MySQL container connected to the private network and a Nginx container that is connect to both networks.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create the frontend network

Use the docker network to create the frontend network:

docker network create frontend
Create the localhost network

User the docker network command to create the localhost network:

docker network create localhost --internal
Create a MySQL container

Create a MySQL container that is attached to the localhost network:

docker container run -d --name database --network localhost -e MYSQL_ROOT_PASSWORD=P4ssW0rd0! mysql:5.7
Create an Nginx container

Create an Nginx container that is attached to the localhost network:

docker container run -d --name frontend-app --network frontend nginx:latest
Connect frontend-app to the internal network

Connect frontend-app to the localhost network:

docker network connect localhost frontend-app

Additional Resources

Create a bridge network called frontend that will be publicly accessible.
Create a second bridge network called localhost that will be internal.
Deploy a MySQL container called database that will use the localhost network. Use the mysql 5.7 image:

  • Use the -e flag to set MYSQL_ROOT_PASSWORD to "P4ssW0rd0!".
  • The MySQL container should run in the background.

Next, deploy a second container called frontend-app. Connect it to the frontend network using the --network flag. Use the latest Nginx image. The Nginx container should run in the background.

Once the Nginx container is created, connect it to the localhost network.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?