Red Hat, Ubuntu, and Docker: Container virtualization goes mainstream

Red Hat, Ubuntu, and Docker: Container virtualization goes mainstream

Summary: Container technology, a lightweight kind of virtualization, is becoming a core component in major Linux distributions. But what role will it really plan in datacenters and the cloud?


Red Hat and Ubuntu are Linux rivals and they disagree on many technical details, but they do agree on one thing: Docker, a container technology is going to be a major virtualization technology in the years to come.

Ubuntu sees container technology and Docker to be as natural and efficient as a honeycomb. Will it be?

Linux, of course, has long had hypervisors such as its built-in KVM (Kernel Virtual Machine) and Xen but containers take a different approach to virtualization. In traditional hypervisors, the entire computing stack, from the processor to memory to storage, is virtualized. That means any hypervisor's virtual machine (VM) takes up a good deal of system resources.

A container, however, is based on a shared operating-system kernel. This, as James Bottomley, Parallels‘ CTO of server virtualization and a leading Linux kernel developer, explained at the Linux Collaboration Summit in March 2014, containers are much lighter and more efficient than hypervisors. Instead of virtualizing hardware, containers rest on top of a single Linux instance. This means you can "leave behind the useless 99.9 percent VM junk, leaving you with a small, neat capsule containing your application."

For practical purposes, that means you can put far more applications on a single server than with any virtualization approach. And, of course, if you can put more program instances on a server, you can put more of them in your datacenter or on your cloud. The trick, of course, is to get your apps into a container in the first place. That's where Docker comes in.

On Linux, containers run on top of LXC. This is a userspace interface for the Linux kernel containment features. It includes an application programming interface (API) to enable Linux users to create and manage system or application containers. Docker can be thought of as a packaging system for LXC containerized applications. This makes it simple to deploy container applications on operating systems such as Red Hat Enterprise Linux (RHEL) 7.0 and Ubuntu 14.04 server.

Red Hat CTO Brian Stevens explained that Red Hat has jumped into this because, "the Docker technology, which helps eliminate the barriers facing enterprise adoption of containers – ease of use, application packaging and infrastructure integration – was very exciting to us. We believe that integrating Red Hat and Docker technologies offers both powerful developer capabilities and a lightweight application packaging approach for enterprise workloads across industries."

Canonical, Ubuntu's parent company, has jumped into it for similar reasons. Mark Shuttleworth, Canonical and Ubuntu's founder, said on Google+ that, LXC and Docker are "much faster and lighter than KVM!"

In a blog posting, Dustin Kirkland, Canonical's Cloud Solutions Product Manager, added that for him. Docker, is a "design pattern, [like a honeycomb], occasionally found in nature, when some of the most elegant and impressive solutions often seem so intuitive, in retrospect. For me, Docker is just that sort of game changing, hyper-innovative technology that, at its core, somehow seems straightforward, beautiful, and obvious."

Kirkland continued, "Linux containers, repositories of popular base images, snapshots using modern copy-on-write file-system features. Brilliant,yet so simple. It's for the win."

Not everyone is as optimistic about containers and Docker. Rob Hirschfeld, Dell's senior cloud solution architect wrote on his blog, "There are clearly a lot more great use cases for Docker but I can’t help but feel like it’s being thrown into architectural layer 'cakes' and 'markitectures' as a substitute for the non-world's 'cloud,' 'amazing,' and 'revolutionary.'"

Hirschfeld believes that Docker can be potent, even disruptive, in:

  • Creating a portable and consistent environment for dev, test and delivery
  • Helping Linux distros keep updating the kernel without breaking user space (RHEL 7 anyone?)
  • Reducing the virtualization overhead of tenant isolation (containers are lighter)
  • Reducing the virtualization overhead for DevOps developers testing multi-node deployments

"But," he continued, "I’m concerned that we’re expecting too many silver bullets." Specifically:

  • Packaging is still tricky: Creating a locked box helps solve part of downstream problem (you know what you have) but not the upstream problem (you don’t know what you depend on).
  • Container sprawl: Breaking deployments into more functional discrete parts is smart, but that means we have more parts to manage. There’s an inflection point between separation of concerns and sprawl.
  • PaaS [Platform as a Service] Adoption: Docker helps with PaaS but it does not solve neither the "you have to model your apps for a PaaS" nor the "PaaS needs scalable data services" problems

Will containers with Docker be the next great revolution in virtualization and the cloud? Or, will Docker prove to be just another path for datacenter and cloud architects to consider as they strive to get ever more programs running on the same hardware? This is the year we're going to find out. If you work in the datacenter or the cloud you'll need to start working with them to see for yourself where you think containers will fit into your plans.

Related Stories:

Topics: Virtualization, Cloud, Data Centers, Linux, Open Source, Ubuntu

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Docker vs Proxmox, Virtuozo, OpenVZ?

    Can you please clarify or describe about the existing solutions related to container virtualization? I had learnt this this article from Ken Hess that Proxmox using OpenVZ which itself derived from Virtuozzo. So what is the differences or advantages that Docker offers compared to OpenVZ? Thanks in advance.
    • Docker, LXC and OpenVZ

      Docker is more of a mini-container because it is mostly designed to run a single process with the desired runtime environment. If you need more than one process then you run a separate Docker container for each process and then connect them together with private network connections. While Docker has two nice trendy features, image layering and git-like application deployment... it is really a flowchart for of containers... where you assemble the various pieces and plug them in together. With OpenVZ, which has been around for 9+ years now, you get a full blown container inside of which you can run a fairly complete Linux distribution which includes all of the processes and services you want. OpenVZ is higly isolated (hosting providers have been giving container users root access) with considerable resource management. Docker is getting there... but Docker was more for building a PaaS cloud service and/or sandboxes for developers... than a general purpose container technology.

      The "problem" with OpenVZ is that it started life as Virtuozzo in 2001 and matured until 2005 when its underlying kernel code was released under the GPL as the OpenVZ Project. The patch was simply too big and mature to ever make it into the mainline kernel. Also, since it is a big patch that touches a lot of subsystems they don't want the effort to port it to a new mainline kernel every 3 months so Parallels (the sponsor or OpenVZ) has just been porting it to RHEL-based kernels... and some see 2.6.18 (RHEL5) and 2.6.32 (RHEL6) as being too old for them even though Red Hat does a great job of maintaining it with a constant stream of security updates as well as quite a bit of backporting (especially of drivers) every six months with RHEL releases. I'm really looking forward to the RHEL7 release and the OpenVZ-kernel derived from the kernel provided with it. Docker in RHEL7, not so much.
  • Red Hat and Ubuntu are rivals

    Are Chocolate and Vanilla rivals?
    Is a peanut the rival of a grape?
    Is mom a rival with dad?
    And how about uncle Bob?
    Tim Jordan
    • They're both commercial enterprises...

      ...competing for the same clientele, but it's not at all like MS vs Google. Things are a bit friendlier in the Linux world than in some other places.
      John L. Ries
    • Tim Jordan: "Is a peanut the rival of a grape?"

      Not if the grape is dried to produce a raisin. Peanuts and raisins are sold together in most commercial versions of trail mix.

      Looking it it another way, peanuts are legumes and grapes are fruit. Imagine yourself at a cocktail party discussing Linux with Mr. Davidson, holding a glass of wine (created from fermented grapes) in one hand, scooping up some peanuts with the other.

      And Bob's your uncle. :)
      Rabid Howler Monkey
  • Solaris 10

    Solaris 10 has had containers for several years.
    • True

      That's where the idea likely came from.
      John L. Ries
  • similar to Solaris Containers or FreeBSD Jails?

    It is my clear understanding that Docker is technology in the vein of Solaris "Containers " and FreeBSD "Jails", which both provide considerable greater flexibility and Operating System (OS) performance in many more cases than standard Hypervision Virtualization.

    It would be instructive if S.V. Nichols or some other non-Microsoft technology journalists could expound on the differences - in advantages and weaknesses between Docker and those mentioned previously in comment
  • It's kind of absurd

    So here is this technology which has been around in one for or the other for a very long while (chroot environments, BSD/Solaris Jails), which then gave zones and on the Linux side are vservers, openvz, and lxc for a long time.

    "the Docker technology, which helps eliminate the barriers facing enterprise adoption of containers." I love this stuff; so basically "The Enterprise" is this ide which from the depth of it's ignorance expect the world around to validate its bias and render it comfortable with said ignorance. Webair a hosting company which interviewed me once had a massive amount of companies hosted on BSD jails. I'm sure if the author were to put some time into the research he would come to realize how many companies where the "Windows/Enterprise" mentality (with all its shortcomings) is not present are doing very well and hosting serious applications. It bothers me to no end when I speak to someone who's been drowning in the Enterprise cool aid where the fallacy of deferring to authority rules, are always excited about "new technlogies" that tons of other people have been using.

    Might I also bring your attention to Joyent's which is doing things that are just amazing especially when combining node.js on that platform with ZFS and Dtrace.

    Ignorance is bliss.

    Omne Ignotum, Pro Magnifico.