Difference between revisions of "OPS635-lab-docker"

From CDOT Wiki
Jump to: navigation, search
(Submission)
(4 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
===Pre-Requisites===
 
===Pre-Requisites===
 
*You must have an installed host, with at least three virtual machines.
 
*You must have an installed host, with at least three virtual machines.
*Each machine must be running an up-to-date version of CentOS 7.
+
*Each machine must be running an up-to-date version of CentOS.
  
 
===Materials===
 
===Materials===
 
*One Solid State Drive (SSD), minimum capacity 240GB, in a USB3 Enclosure.
 
*One Solid State Drive (SSD), minimum capacity 240GB, in a USB3 Enclosure.
==Investigation 1: Creating a Docker Swarm==
+
==Investigation 1: Running Docker Containers==
*Install Docker on three virtual machines of your choice.
+
*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.
 
**'''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 correct method.
+
**'''Note2:''' Do not install Docker from the default CentOS repository! Refer to your lecture notes and slides for the current correct method.
*Pick one of your machines to be the swarm manager, start a swarm on it, and make the others join the swarm as nodes.
+
*Run the 'hello-world' image to ensure your installation is working.
 +
**Feel free to remove the container and image afterwards.
  
==Investigation 2: Deploying an image across the swarm==
+
==Investigation 2: Deploying a Container From a Custom Image==
*Run a container using the existing image for httpd and 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).
+
*Run a container using the existing image for httpd.
*Commit these changes and push your image to docker hub.
+
**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).
==Investigation 3: Managing how images are deployed==
+
**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.
 
*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==
# Demonstrate your Swarm working in class.
+
# 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

  1. Upload your dockerfile and docker Compose file to Blackboard.