Docker declared the week of 14th to 20th of November 2016 to be the first Global Mentor Week, with the incredibly ambitious goal of providing those interested with self-paced tutorials, wherever they come from. To set up trainings worldwide, Docker used its strong community and engaged the organizers of all Docker Meetup Groups -- over 250 worldwide -- to help arrange mentoring sessions in their part of the world.
As Zalando Dortmund organizes the Docker Meetup Group Dortmund, we discussed with other groups in the Ruhr Area, Bochum and Düsseldorf, to coordinate one event with mentors from all three groups, which was scheduled for November 17th in Düsseldorf. With this approach, we prevented overlapping events and were able to have one big session for the initiative.
Docker provided us with their typical and very welcomed Swag Packs (T-Shirts, stickers etc.) and their training material, as well as sharing valuable tips on planning the evening and preparing the participants.
The training material consisted of five self paced courses, and give a good overview on the whole Docker environment. Every course ends with an online quiz and a certificate when successfully completing it. The courses are described below in detail:
- Beginner Linux Container: Set up your system, run your first ‘Hello World’ container, run your first web application in a container, create your first Dockerfile, and build your first image
- Developer Intermediate Linux/Windows: This course consists of networking between containers, managing/persist data, security scanning, organizing repositories in the Docker Hub, and automated builds and tests using Docker Hub and Docker Cloud
- Operations Beginner: Set up an application consisting of different services, a web UI and databases using Docker Compose and scale it out in one instance. Set up a local registry for this app. Use Docker Swarm to set up a cluster with five nodes containing this application
- Operations Intermediate: A deeper dive into swarm clusters, exploring networks, rolling service updates, centralized logging, metric collection, and stateful services
- Beginner Windows Containers: Setting up your environment, running basic containers, and creating a Docker Compose multi-container application using Windows containers
The mentoring session was attended by approximately 35 participants, with a range from total newbies to experienced Docker users, and everybody found a course suited to their skills. It started with a short introduction on the idea behind this event and how to prepare the laptops, and after a break for dinner, everyone started hacking. As a special treat, our friends from Bochum brought along a cluster of three Raspberry-Pi-3 computers to build a swarm using Docker on ARM.
The courses were almost self explanatory, so the main tasks of the mentors were to answer questions beyond the exercises and give tips on different problems the participants had in the past using Docker. A few topics that came up:
- Can you access data from a Docker volume on the host? You can, and to do so, create a container that mounts this volume then copy the needed data from this container to the host, using ‘docker cp’
- Can you restrict access to an exposed port due to a protocol or for incoming/outgoing connections? I wasn’t sure about a built-in solution from Docker, but a colleague suggested to use iptables for this
- Is there an ideal way to deploy a Dockerized application in a cloud-based environment? Most probably not, but I described briefly the way we deploy our applications at Zalando on AWS using our open source STUPS tools
After three hours, we engaged in a Q&A session to hear everyone’s experiences with the courses, winding down the evening with a beer or two.
Our mentoring session and the whole Docker Mentor Week was a great success. We received a lot of positive feedback and not only did the participants learn so much, but I also benefitted greatly from preparing for the event. Just one example: During my preparation I tried out the native Docker for Windows solution, together with the Docker client for Linux installed within the Linux Subsystem for Windows (Bash on Windows). You still need Hyper-V to virtualize the Docker engine environment and needed kernel features, but with the Linux-based CLI it was worked astonishingly well.
Altogether there were more than 110 events on 5 continents with over 500 mentors, 7500+ RSVPs, and more than 1000 certificates distributed: Incredible numbers for a truly global event.
This was the first cooperation of the three Ruhr Area Docker Groups and hopefully not the last. We’re currently planning a combined event to celebrate Docker’s 4th birthday next March. If you’re interested in attending, contact me on Twitter at @jans0510.