A Day with Docker (or, ‘Does It Really Live up the Hype?’)
If you are anything like me, you grew up with the Internet and web, so IT technologies and services are as second nature as breathing. Hype has no effect on you, and simply because ‘everyone else is doing it’ does not justify you spending your precious time learning some new technology or framework when a bash script and a cron job does the same job with none of the overhead investment. Then comes along a new technology called Docker. Some new virtual machine (VM) technology that promises to make your life +1000% better, cook your breakfast, and rub your feet. All you have to do is just drink the Kool-Aid. But is it really worth it? Sourcetoad was kind enough to give me a day to sit down and try it out to see for myself.
Looking around the web, I wanted the absolute basic of basic introduction video tutorials. Checking Docker’s website, they actually have some free basic video training. Over the course of the day, I was able to complete the first two, as well as continue to assist my peers in the daily development rituals. The presenter for the videos did an excellent job (minus some minor background audio noises). The videos are well paced, each point builds on the previous, and everything is explained very well.
- A Docker container visualizes only the software layer
- Containers are ‘live’ for only as long as needed to process a request
- The Docker CLI API is as predictable as can be expected
- Spinning up a container, process request, respond; stupid fast
The implications here along are amazing. Isolated software applications and services in self contained VMs that do not remove the resources from the host machine. I would say that is, by itself, amazing.
The second lesson jumped into creating images and mounting file-structure objects into, and between, containers. Again, the presenter was well paced, and explained each step and what it would do. At one point, I was running 20+ containers based off 4 different OS images. Memory used: 500megs. This was amazing! Then came some of the networking topics. I am no network engineer but even the networking between containers was so clearly explained that your day-1-new-hire-team-member, who just finished high school, could put it together. No joke, spinning up and networking containers is really that easy. Towards the end of the lesson the presenter introduces the ‘Dockerfile’, making this process so automated that your sys-admin will approve.
After the second lesson I looked around on the web for other resources. Search term: ‘docker’
- Google: About 15,400,000 results
- Bing: 5,650,000 results
- Yahoo: 3,910,000 results
- Stackoverflow: 35,794 results
- Tuts+: 4 lessons
…and countless ‘docker tutorial’ results. Needless to say, the resources are there if you need them. (Even the local development Slack team has a channel for docker.) The next concern is industry acceptance. Is it a technology that is/will be accepted and supported? The short answer is : Yes, yes it will be. AWS, Google Compute, Azure, et. al. cloud providers have top-tier support. Meaning, if the industry movers and shakers have adopted it, and you have even bothered to learn it, your already doing yourself a disservice.
Docker has infiltrated every level of system architecture, from localhost dev to data center. The best part is it actually is easy to learn. Application and service containerization is the forward and Docker is the charge. Add it to your learning rotation and schedule some time to pick it up.
- https://scotch.io/tutorials/getting-started-with-docker https://www.youtube.com/user/dockerrun
Note: Docker recently released Windows and OSX native client packages. Now there is no excuse for not taking it for a spin.