Given the 29 attendees for this meeting it shows there is quite some interest in container platforms.

Some late-comers even had to peek into the conference room, all chairs were occupied.

Docker 101

Jeshan started the sessions with a brief overview of the nuts and bolts of Docker. In general, it's a virtualised environment that offers an isolated workspace specific to your requirements. The concept of containers makes it easier to understand that all environments are isolated from each other and self-contained.

The really interesting advantage of containers compared to virtual machines (VMs) is their small memory footprint and their specific content. Virtual machines run guest operating systems. This is resource intensive, and the resulting disk image and application state is an entanglement of OS settings, system-installed dependencies, OS security patches, and other easy-to-lose, hard-to-replicate ephemera.
Containers can share a single kernel, and the only information that needs to be in a container image is the executable and its package dependencies, which never need to be installed on the host system.

Docker is available in two flavours - Community Edition (CE) and Enterprise Edition (EE) - for all major operating systems. During the meeting we mainly focused on Docker CE, and how to get started after all. Get more information about What is Docker? on the official website. Or directly check out the docker docs.

Before you deep dive into Docker yourself it is compulsory to have a Docker ID. If you don’t have a Docker account, sign up for one at cloud.docker.com. Make note of your username.

Play with Docker (PWD) is a project hacked by Marcos Liljedhal and Jonathan Leibiusky and sponsored by Docker Inc.

PWD is a Docker playground which allows users to run Docker commands in a matter of seconds. It gives the experience of having a free Alpine Linux Virtual Machine in browser, where you can build and run Docker containers and even create clusters in Docker Swarm Mode.

Using your Docker ID allows you to log into the playground and assigns a temporary, interactive session to you. Now, you would be able to experiment with any available docker image, and you can sharpen your skills to use and operate docker. All without any local installation or resources needed.

All demos provided by Jeshan were run on PWD, actually.

Data migrations made easy

Apart from developing your web applications using Docker at a certain stage during the development you are facing the need to operate a data store. And with ongoing development their are going to be structural changes in your data model, too.

Jeshan introduced the audience to Flyway by boxfuse to simplify the handling of database schemas and data content, or better said data migrations.

Version control for your database.
Robust schema evolution across all your environments.
With ease, pleasure and plain SQL.

Using multiple PostgreSQL containers Jeshan then showed how easy it is to change your SQL schema and data in a master template and then replicate it to other container instance with Flyway.

Keep your stuff together

A common scenario is that you would run multiple services and applications together. Eventually, you might have a web application, and at least a data store like MySQL or MariaDB. Or you would like to add an application cache like Redis or maybe a security token service (STS).

Ease your life with docker-compose. Configure and run multiple containers together. Percy took over and demonstrated live on how to join two containers - a web app based on Laravel and an instance of MySQL - as a unit. Using docker-compose is an easy entry into Docker orchestration. Later on, you might like to look into other services like Swarm or even Kubernetes for robust and scalable production environments.

Feedback from other attendees

"I do not regret coming to this meetup. Learning a lot from it! :)" -- Shravan

My take-away

Consolidated introduction into Docker for beginners. Jeshan went from initial concepts to practical scenarios and explained all the steps in-between. Looking forward to check out his git repositories with more samples and details. Also, Percy showed a practical case of using docker-compose to gather and operate multiple containers in a go.

The meeting was crowded, and it was great networking during the break and afterwards.

Thanks!

Thanks to everyone coming. Hopefully, you had a good time!

Kudos to our software craftsmen Chervine, Jeshan and Percy for organising this monthly MSCC event. Seeing the high interest, lots of questions from the audience and the vast field of information you guys should consider to run another meeting on Docker very soon.

The MSCC members would like to thank Extension Interactive for their ongoing support and their offer to host our January meeting.

And last but not least, a shout-out to JetBrains who generously support our developer community with their sponsorship program. JetBrains supports our user group by providing licenses of their products to raffle out at our meetings.

This month's chosen winner: Nadim

Congratulations, and we're sure that JetBrains has something for you in stock. ;-)