docker

in Development

Why Knowing Docker Is Essential To Your Startup

via yazpik.github.io

via yazpik.github.io

Docker is hot, receiving series B funding in January valued at $15 million. Docker, a shiny new container technology, has been riding on a rapid wave of success since it’s initial release in 2013 and, last June, a Docker 1.0 Release. The rumble is happening because companies have been adopting this new software left and right, with big names like Red Hat and Microsoft embracing the fledgling technology. If you’re unfamiliar with Docker and what it can do for the future of tech, hop on deck, we’ll be your guide.


What is Docker?


Docker is a container system that takes the building blocks required to run a software application (code, runtime, system tools, system libraries), and wraps them into little neat packages that execute on any server. To understand Docker, you need to understand containers. Containers work by abstracting the operating system kernel. That means anything an application depends on to run, perhaps a version of Ruby or MySQL, Docker will have containers enabling those programs to run without installing them onto the server. Docker containers are easy to deploy in a cloud, and empower creativity by removing obstacles for developers — like approved language stacks and environment inconsistencies. Ultimately, Docker’s software contributes largely to collaboration, faster shipping, and building better software.


Containers v. VM


Don’t we already have Virtual Machines to do that? Yes, but containers serve as a lightweight alternative.

VMs virtualize a server to create multiple operating systems. VMs encompass the application, as well as the necessary components, libraries, and the entire guest operating system — a hefty load for servers, up to 10s of GBs. That bloated package ultimately slows you down, and can take minutes to boot.

Containers virtualize the operating system and allow multiple workloads to run on one host. They run as isolated processes for the user on the host OS, without requiring any specific infrastructure. Docker runs on any system, computer, or cloud, and, without the weight of a VM, containers promote portability and efficiency. It’s a light, fresh approach to building.


What’s all the Buzz About?


You may not know it, but you’ve probably been using containers for years. Google uses an open source container (let me contain that for you, lmctfy) for most of their functions, i.e. GoogleDocs, Gmail, Search. Docker is taking the container idea one step further with some recent updates to their container solution, including bringing the portability of containers to the networking level. Docker’s recent acquisition of Socket Plane, which allows developers to work on a software-defined networking layer to string together their containers, makes this idea a tangible Docker feature. Now, applications made with Docker can communicate back and forth over many different network architectures. On top of that, Docker just added new plug-in architecture that allows developers to swap different API implementations to move between networking stacks.

The Open Container Project, run by the Linux Foundation, is “chartered to establish common standards for software containers”. Docker, CoreOS, Google, Microsoft, and Amazon are all on board with the OCP, attempting to standardize development, make it vendor neutral, and out in the open. With that goal, Docker is establishing their place in the tech industry as the image and standard for containers. In June 2014, with the release of Docker 1.0, Docker’s CEO Solomon Hykes said:

“It is for this reason that we are donating our container format and runtime to the standard. We believe that after two years, the Docker container runtime code and technology have matured to the point that they would benefit from independent governance outside the Docker project. The strength of Docker has always been about getting the community to join forces and avoid fragmentation.”

Docker’s stance on an open community for container development hints that their goals move far beyond just the future of software containers. Rather, Docker has positioned themselves as an ecosystem around innovation.

Giving developers a smarter, simpler way to work is something we here at Jixee can really get behind. That trend seems to be building over time, as we see companies like Docker and React creating systems that work for you, and do so without exclusivity. Embracing collaboration and open discussion is what gives us the best ideas and tools to move technology into the future, so it’s no surprise that tech leaders are taking notice of Docker and working in unison. While the Docker technology is fairly new and work is still underway to solidify features, the large ecosystem of companies forming around it creates quite an interesting story, and we’ll be standing by to see how that story unfolds in the long term.