Difference between revisions of "OPS635-lab-docker"
m (→Investigation 2:) |
|||
Line 19: | Line 19: | ||
*Run a container using the existing image for httpd. | *Run a container using the existing image for httpd. | ||
**Make some changes to the index.html file by using docker exec (The exact content is not important just include some text that says ‘version 1’, I just want to see that you can modify it). | **Make some changes to the index.html file by using docker exec (The exact content is not important just include some text that says ‘version 1’, I just want to see that you can modify it). | ||
+ | **Make some changes to the httpd.conf file (e.g. replace the ServerName parameter, so it stops throwing error messages). | ||
*Commit these changes and push your image to docker hub with the tag v1. | *Commit these changes and push your image to docker hub with the tag v1. | ||
+ | *Create a dockerfile to create a new image from your v1, with the following changes: | ||
+ | **At least one label identifying yourself as the maintainer for the image. | ||
+ | **Identify port 80 as accessible for machines that run containers based on this image. | ||
+ | **Identify the DocumentRoot as a place that directories can be mounted into. | ||
+ | *Build the image based on your dockerfile, tagging it as v2. | ||
+ | *Run a container based on your v2 image. Access it to make sure it works. | ||
+ | *Once you are sure it works, upload your v2 image to docker hub. | ||
− | ==Investigation 3: | + | ==Investigation 3: Creating a Docker Swarm == |
+ | *Install docker on two more VMs. | ||
+ | *Pick one of your machines to be the swarm manager, start a swarm on it, and make the other two join the swarm as nodes. | ||
*Write a compose file that will deploy one copy of your container onto each of your machines. | *Write a compose file that will deploy one copy of your container onto each of your machines. | ||
+ | |||
+ | ==Investigation 4: Managing how images are deployed== | ||
+ | *Modify your compose file so that two copies of your v2 image will be run on each of your worker machines, but none on the swarm manager. | ||
+ | |||
==Submission== | ==Submission== | ||
− | + | # Upload your dockerfile and docker Compose file to Blackboard. | |
− | # Upload your Compose file to Blackboard. |
Revision as of 16:12, 14 March 2020
OPS635 Docker Lab: Cluster Management Using Docker
Overview
Deploying services as containers in a swarm can make it easy to rapidly deploy it across your network, and to scale it up and down as needed.
Pre-Requisites
- You must have an installed host, with at least three virtual machines.
- Each machine must be running an up-to-date version of CentOS.
Materials
- One Solid State Drive (SSD), minimum capacity 240GB, in a USB3 Enclosure.
Investigation 1: Running Docker Containers
- Install Docker on one of your virtual machines.
- Note: Do not use Docker on your host, as it may interfere with other services covered in this course.
- Note2: Do not install Docker from the default CentOS repository! Refer to your lecture notes and slides for the current correct method.
- Run the 'hello-world' image to ensure your installation is working.
- Feel free to remove the container and image afterwards.
Investigation 2: Deploying a Container From a Custom Image
- Run a container using the existing image for httpd.
- Make some changes to the index.html file by using docker exec (The exact content is not important just include some text that says ‘version 1’, I just want to see that you can modify it).
- Make some changes to the httpd.conf file (e.g. replace the ServerName parameter, so it stops throwing error messages).
- Commit these changes and push your image to docker hub with the tag v1.
- Create a dockerfile to create a new image from your v1, with the following changes:
- At least one label identifying yourself as the maintainer for the image.
- Identify port 80 as accessible for machines that run containers based on this image.
- Identify the DocumentRoot as a place that directories can be mounted into.
- Build the image based on your dockerfile, tagging it as v2.
- Run a container based on your v2 image. Access it to make sure it works.
- Once you are sure it works, upload your v2 image to docker hub.
Investigation 3: Creating a Docker Swarm
- Install docker on two more VMs.
- Pick one of your machines to be the swarm manager, start a swarm on it, and make the other two join the swarm as nodes.
- Write a compose file that will deploy one copy of your container onto each of your machines.
Investigation 4: Managing how images are deployed
- Modify your compose file so that two copies of your v2 image will be run on each of your worker machines, but none on the swarm manager.
Submission
- Upload your dockerfile and docker Compose file to Blackboard.