Starting Docker: An honest developer summary

Starting Docker: An honest developer summary

if ($i = 'CHAOS') {
  // Manage the constants
  $control = $Docker
} 

Around 10 months ago, I was puzzling with how to best keep up with new technologies. Sure, I read a lot about them, my two most visited sites are Hacker News and reddit.com/r/programming, but also, I was keen to start trying out new things. Alongside that, I had a pretty good idea that I could deploy and manage applications better (faster, more efficiently, more securely etc). So, seeing as containers were all the rage around 2 years ago (and because I am a usually and adopter of slightly more mature software development). I though that Docker was the perfect candidate. Not only was it potentially really useful across a stack, from local development to production, but it would also give the ability to manage system setup far more comprehensively. Giving new developers the tools that the require with a simple "docker pull". So I set out writing an intro, going from installation to your own containers.

  1. Starting Docker: Installation
  2. Starting Docker: Running containers
  3. Starting Docker: Working inside a container
  4. Starting Docker: Using tools from inside your containers
  5. Starting Docker: Running NPM, Yarn, Composer and Wraith inside containers
  6. Starting Docker: Making Drupal PHPCS Docker Container

Honestly, I remember trying Docker around 3 years ago, and coming back not really seeing the value it delivered. At the time we were ramping up the amount of Ansible we were using and seeing as we had a pretty solid stack (Ubuntu/Debian, nginx/Apache, PHP(PHP-FPM), MySql/MariaDB). We had been stable on that for at least 3 years and I didn't want to need to learn anything new to keep it running. I was pretty comfortable.

However, that changed when I started a new job, wherein I was both managing a lot of different projects, but also a lot of different developers; with different styles, different experience and different timezones. Trying to keep a constant in that environment is pretty difficult.

So honestly, what has Docker given me? Basically the ability to create more constants from chaos. I can distribute on nearly any OS (still not doing Windows). I can control from local developer to production environment, and I can deploy and track really fast. The stack is changing really fast, and we are running decoupled, api-based, rate-limited bleeding edge services, so anything you can control and manage enables you to move further faster.

Recommend? Yes... Particularly if you are not sure how, who or what is going to be in your next software project.

To view or add a comment, sign in

More articles by Will Hall

Explore content categories