Starting Docker

Everyone is talking about Docker, but you already have a day job and spend your nights learning three other new technologies. Plus the kids need a story before bed, the toilet won’t flush right, the trash needs gathering up and – who has the time?! Don’t worry, we’ve got you covered! I can’t help with the plumbing, but we here at Linux Academy and Cloud Assessments can give you a head start on Docker and maybe even save you a few minutes by using it.

Docker has been touted as a “lighter visor,” and I’m still not sure how I feel about that. On the one hand, it’s correct: Docker containers are, in many ways, similar to virtual machines in that they are discrete units of compute designed around an application or set of applications making up a task. Besides being an order of magnitude more efficient by making use of the host’s kernel, containers are smaller, faster, and generally better for many tasks than virtual machines.

Unlike many hypervisors, though, Docker is really easy to try out. In my experience, hypervisors get really complicated at the networking layer to ensure connectivity to the virtual machines, and every installation is unique – getting connectivity is usually a challenge and can be a different challenge each time. And while your experience with hypervisors might be different, it’s rare that a powerful tool like Docker is so easy to install and use when one is first starting out – but this is one of Docker’s most exciting features, and one that is rarely discussed.

Docker has installers for the usual suspects of desktop operating systems, and yes, for Windows and Mac users, that means the Docker host runs in a Linux virtual machine. Yes, I can hear your eyes rolling. Mine did initially, too. Don’t let that dissuade you – it just means that your containers will run precisely the same way that they will run in a full production environment. And once you get through a basic “Hello World” application while trying Docker out, you might be left wondering what to do with containers next. This is where the fun starts.

I love to play with new technologies. This has meant, in the past, unstable home lab servers or laptops as I continuously install, remove, and reconfigure server applications. With Docker, I can go to store.docker.com and download a preconfigured container, run it anywhere, and not risk anything else on the metal. If a container does need some kind of configuration, usually it’s minimal and well documented. Some of my favorites to play with include Jenkins, ownCloud, Minecraft server, and MediaWiki, but the list is really long. And since the whole thing is containerized, removal is very easy, as well. Nothing remains to gum up the works of the machine after you shut it down and delete it. The Mac and Windows versions have full graphical user interfaces now, so you don’t even have to master a command line version until you’re ready.

After you get the basics of Docker down – which you can do with our Docker Essentials course – you’re going to want to do more. You’ll want to create your own containers, make use of repositories, and generally want to containerize everything! We have several courses here for you when you’re ready, and you can join our community Slack to get updates and information about “Learn with Anthony James,” whose first learning track is focused on Docker!