Mini-Projects for Docker
Challenge 1
Welcome to the Docker challenge, your task is to follow the below steps and complete them successfully.
Step 1: Pull latest nginx image
Step 2: Create a new bridge 'bridge_sample'
Step 3: Run a couple of images (Cont1 and Cont2) and connect these to the new bridge created. Now try to ping from cont1 to cont2 to verify connectivity.
Step 4: Stop containers
Step 5: Remove network, containers, and images using docker commands
Note: Execute "history -w" in the terminal before submitting the scenario.
Before moving to Answers try to solve yourself...
Let's get started...
Step 1: Pull latest nginx image
docker pull nginx:latest
Step 2: Create a new bridge 'bridge_sample'
docker network create bridge_sample
Step 3: Run containers and connect them to the new bridge
docker run -d --name Cont1 --network bridge_sample nginx:latest
docker run -d --name Cont2 --network bridge_sample nginx:latest
Step 4: This step is optional if Cont1 already has the 'iputils-ping' installed, else install this in Cont1
docker exec -it Cont1 /bin/bash #inside the Cont1 apt update apt install -y iputils-ping exit #exit from Cont1
Step 5: Ping from Cont1 to Cont2 to verify connectivity
docker exec -it Cont1 ping Cont2
This step verifies that Cont1 can successfully ping Cont2 over the 'bridge_sample' network.
Step 6: Stop containers
docker stop Cont1 Cont2
Step 6: Remove network, containers, and images
docker network rm bridge_sample
docker rm Cont1 Cont2
docker rmi nginx:latest
Note: Removing containers and images will permanently delete them, so please ensure you have backed up any important data before proceeding.
And that's it! The challenge is complete.
Once you are comfortable with this challenge now lets move to next challenge.
Challenge 2
Welcome to the Docker challenge, your task is to follow the below steps and complete them successfully.
Step 1: Initialize Docker Swarm
Step 2: Create a Docker Service with the following details:
image: tomcat:8.5.78-jrell-temurin
name: http
Replicas: 2
port: 88
update-delay: 10s
Step 3: Update the above Service with a newer image tomcat:8.5-alpine
Step 4: Scale the above Service to 4 replicas
Step 5: Create a Docker overlay network with name app-network
Step 6: Step Update http service and add it to app-network network
Step 7: Step Create a secret with name redis password and content Pass@123
Step 8: Create another Docker Service with the following details:
image: redis:alpine
name: redis
secret: redis_password
mode: global
Step 9: Update the Leader node and add a label color=red
Step 10: Create a docker service with tomcat:8.5-alpine image with name tomcat-red-only. Add a constraint that the service will be deployed on node with label color=red
Here are the commands to achieve the steps outlined
Let's get started...
Step 1: Initialize Docker Swarm
docker swarm init
Step 2: Create a Docker Service with the given details:
docker service create --name http --replicas 2 --publish 88:80 --update-delay 10s tomcat:8.5.78-jrell-temurin
Step 3: Update the above Service with a newer image tomcat:8.5-alpine
docker service update --image tomcat:8.5-alpine http
Step 4: Scale the above Service to 4 replicas
docker service update --replicas 4 http
Step 5: Create a Docker overlay network with name app-network
docker network create --driver overlay app-network
Step 6: Update http service and add it to app-network network
docker service update --network-add app-network http
Step 7: Create a secret with name redis_password and content Pass@123
echo "Pass@123" | docker secret create redis_password -
Step 8: Create another Docker Service with the given details:
docker service create --name redis --secret redis_password --mode global redis:alpine
Step 9: Update the Leader node and add a label color=red
docker node update --label-add color=red self
Step 10: Create a Docker service with tomcat:8.5-alpine image with name tomcat-red-only. Add a constraint that the service will be deployed on a node with label color=red
docker service create --name tomcat-red-only --constraint 'node.labels.color==red' tomcat:8.5-alpine
Note: These commands assume that you are running them on the Docker Swarm manager node. If you are running them on a worker node, you may need to add the appropriate --host
or --tls
options to connect to the Docker Swarm manager. Also, make sure that you have Docker Swarm mode enabled on your Docker installation before executing these commands.
---THANK YOU---