Dockerization for C++ Workshop


Details
IMPORTANT
This meetup is a workshop. EVERYONE MUST BRING THEIR OWN LAPTOP (team up with a friend, or a stranger who has one). Power outlets and WiFi will be available. PLEASE download and install Docker before the event to avoid overloading the available bandwidth. Instructions can be found a few paragraphs below.
Gabriel Aubut-Lussier, assisted by Richard Savoie, will be running this workshop, answering questions and helping attendees troubleshoot in case of problems. Of course, interactions between the attendees is strongly encouraged.
LOGISTICS
This meetup will be held in Microsoft's Montreal office, on the 5th floor in suite 550. The doors open at 6 pm. Pizza will be served, thanks to our sponsor Druide Informatique inc. The workshop starts as soon as you are ready to get to work or to exchange with other participants, after the doors have opened.
INSTRUCTIONS
This workshop is intended to help you learn how to leverage Docker to run dockerized applications, dockerize your own application and dockerize your build toolchain. This document is a step by step guide meant to help you discover Docker progressively. It is accompanied by sample code that has a non-trivial structure in order to help progress further than what a classic Hello-World example would allow. At any point, feel free to explore something more in depth or to skip exercices. Good luck!
- Getting started (~40 minutes)
By the end of this section, you will have installed Docker and learned how to use it through basic examples that leverage existing containers. This section can be completed prior to the workshop in order to maximize how far you can get during the activity.
1.1. Install Docker
WINDOWS
Windows Pro/Enterprise : https://hub.docker.com/editions/community/docker-ce-desktop-windows
Windows Home : Install a Ubuntu virtual machine and follow the Ubuntu instructions below; you can also experiment installing Docker on your own, but you might run into unforeseen problems doing so; here are some useful URLs to run a Ubuntu VM :
Virtual Box: https://www.virtualbox.org/
Enable virtualization : https://www.tactig.com/enable-intel-vt-x-amd-virtualization-pc-vmware-virtualbox/?fbclid=IwAR3OGdNJXyp4GAL7jlSnbT0cWpjkh72pWEzuU3aaV0xvMrs4NiRKppd-T_c
UNIX
macOS : https://hub.docker.com/editions/community/docker-ce-desktop-mac
Ubuntu : https://docs.docker.com/install/linux/docker-ce/ubuntu/
Fedora : https://docs.docker.com/install/linux/docker-ce/fedora/
CentOS : https://docs.docker.com/install/linux/docker-ce/centos/
Debian : https://docs.docker.com/install/linux/docker-ce/debian/
1.2. Run the official hello-world container
`docker run --rm hello-world`
Hint : Take a few moments to read the container's output.
1.3. Run the official bash container
`docker run --rm -it bash`
1.4. Find out the meaning of the arguments supplied to the `docker run` command
`docker help run`
1.5. Look up the online reference to find out more about the `docker run` command
https://docs.docker.com/engine/reference/commandline/run/
1.6. Follow the "Docker For Beginners - Linux" tutorial
https://training.play-with-docker.com/beginner-linux/
1.7. Conclusion
By now, you should have a basic understanding of how to use Docker to run applications by leveraging existing containers. You have also had a quick introduction to deriving new containers from existing ones. Now is a good time to explore the official Docker library and look for software you are already using without Docker. You can also explore unofficial images for a wider array of services.
Official images : https://hub.docker.com/search?image_filter=official&type=image
Programming languages images : https://hub.docker.com/search?type=image&category=languages
All images : https://hub.docker.com/search?type=image
- Guided tour and sample code will be provided on the day of the workshop. Both will be published on github after the event.

Dockerization for C++ Workshop