- The Unlikely Rise of Docker
- Why Okta Developers Love Docker
- Biggest Hurdles of Using It
The Unlikely Rise of Docker
In 2014, a startup called Docker started to gather an incredible amount of attention. The momentum started building in March 2013, when the company’s founder, Solomon Hykes, introduce the technology at the developer conference PyCon in a keynote presentation entitled “Lightning Talk: The future of Linux Containers.” By the end of last year, the wellspring of excitement for Docker had reached a fever pitch – with enterprises including Amazon, Google, Microsoft, HP, Dell, Red Hat, and VMware all clamoring to join forces with the company, which then had just 70 employees.
Basically, Docker makes containers. Its primary competitors are Google and CoreOS, the latter of which used to be closely allied with Docker.
Containers basically make it easier to manage cloud applications. Docker is an open source tool that system administrators and developers can use to create and run cloud apps.
Why Okta Developers Love Docker
Okta is a SaaS tool that gives enterprises a central portal for management of employee login credentials to other cloud accounts.
The company’s CEO, Todd McKinnon, who was previously the top engineer at Salesforce, says that Okta’s coders like Docker simply because they can write a program on a laptop; see if it works; and know that when they move into production, there won’t be any surprises.
There used to be a much bigger disconnect between development laptops and servers. Prior to Docker, “code would run in a laptop and you’d think you got it working,” McKinnon explains, “but then something is different on the server, not the right files or configuration or something, and it would break.”
What that essentially meant was a huge amount of wasted time – hours spent trying to determine what was lost in translation between the laptop and the server.
Developers are obviously enthusiastic about not having to deal with something as mundane as configuration problems. They also like that Hykes took a standard Linux feature and made it into a cloud service – a brilliant solution for a persistent headache.
Now many developers use Docker as an integral part of their process.
Biggest Hurdles of Using It
Here are some of the biggest stumbling blocks of using Docker.
A common one is to place the files and configurations within the container. You might build your Nginx configurations into the Dockerfile, for instance. If you do that, and you want to make a change to your virtual hosts, you will have to rerun the whole sequence, says Chris (outrunthewolf on Twitter and Stack Overflow).
“Consider your application carefully, mount your files and configurations to the container, and maintain their relative and locations with your [D]ockerfile,” Chris advises. “[T]his gives you the ability to change data on your local system easily, affecting your containers immediately.”
Slowdown of the building process
Don’t obsess over the Dockerfile. Initially, Chris focused on the Dockerfile, planning to build and run it demonized right away. This is not the way to go. Problems that can arise are vast, ranging from false mount points to MySQL errors.
To solve this issue, scaffold with the Dockerfile but run it interactively – engaging with it directly. Once you know there aren’t any errors, commit the container and update the version tags. The Dockerfile can then be set aside for later use.
You want to be able to run services in isolation, which is one of the primary strengths of Docker. Don’t neglect to create separation when running a stack. One container should run MySQL while another runs Apache. You can then connect the containers, but it’s adaptable. You can always switch out the Apache container for a Nginx one, for instance.
Lack of knowledge
You really want to read the documentation, says Chris – especially the CLI information. “Too often did I miss a trick, or want for something that I thought didn’t exist,” he says. “Docker has some very helpful documentation, and it’s really quick to get a good understanding of what is possible.”
It’s not a cure-all
You may think that Docker is the right choice for every situation, but that’s not the case. Consider whether it’s the practical choice for your given scenario.
Use the source code
Docker is still in rapid development, and your package manager might not keep you completely abreast. “Build it from source, it’s good practice,” says Chris. “[Y]ou can update regularly without hassle, and you might want to build it with certain parameters you wouldn’t normally have the option to use.”
Checking out something new can always get a little complicated. However, this problem is essentially solved by a Cloud Hosting service that makes life easier for users of Docker and other development environments. At Atlantic.Net, our Cloud Server options are up in 30 seconds, running on solid-state drives through international data centers.