Docker and Docker Compose workshop

Highlights

  • This is a workshop. Please come with a laptop that has the necessary installed software.
  • Don't let the length of this document intimidate you :)
  • Please follow all of the installation instructions in this document before coming to the workshop. Debugging docker/git/compose installation takes time away from all attendees.

Installation

You will need 3 things installed

Optionally, a good text editor. I highly recommend VS Code with the Docker Extension.

Docker installation

There are two items of note

  • Please treat this installation like any other. Different operating systems and different set ups (especially in company-issued laptops) can make this installation tricky. Google, and perhaps your desktop support team (if using a company-issued laptop) are your friends. Debugging this can be tricky.
  • Docker requires a slew of permissions to run. So please make sure you grant Docker all the permissions it needs

Testing your installation

> docker -v
Docker version 20.10.2, build 2291f61
> docker-compose -v
docker-compose version 1.27.4, build 40524192

Warm up your engines!

You want to do this BEFORE you show up for the workshop!! Using the command (bash) prompt:

docker image pull alpine:3.12;
docker image pull jenkins/jenkins:2.99;
docker image pull mongo:3.4.5;
docker image pull nginx:1.19.6-alpine;
docker image pull openjdk:11.0.5-jdk;
docker image pull openjdk:11.0.5-jre;
docker image pull ubuntu:21.04;

The final test

Once again, at the command prompt:

> docker run -d --name myjenkins -p 8080:8080 jenkins/jenkins:2.99;
> docker logs -f myjenkins;

You should see the Jenkins logs flowing by eventually settling with the following:

Sep 18, 2018 11:38:19 PM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Sep 18, 2018 11:38:19 PM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
Sep 18, 2018 11:38:19 PM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Sep 18, 2018 11:38:20 PM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
Sep 18, 2018 11:38:20 PM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tools.JDKInstaller
Sep 18, 2018 11:38:20 PM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Download metadata. 7,798 ms
--> setting agent port for jnlp
--> setting agent port for jnlp... done

Visit http://localhost:8080 and see if you see the Jenkins login page. If you do, you are all set to go!!

# ctrl-c to break out of the logs
docker container stop myjenkins;
docker container rm myjenkins;

Woot!!! See you soon!!!

Notes

  • This project also packages the artifact that this project produces so you do not need Java installed