What exactly is Docker and why is it so popular? What are the pros and drawbacks?

Source: Internet
Author: User
What is Docker?

Simply put, Docker is a "container" for programs written by the Go language (Linux containers, LXCS); The cornerstone of cloud services today is operating system-level isolation, virtual multiple hosts on the same physical server. Docker implements an application-level isolation, which changes our basic development and operation units, which are directly manipulated by virtual hosts (VMS) to the "containers" in which the operating program runs.

Docker is an open platform designed for developers and system administrators to publish and run distributed applications. Consists of two parts:

Docker Engine: A portable, lightweight running environment and package Manager. (Note * Single OS vs single thread, is it special like Nodejs?) )

Docker Hub: A cloud service created for creating automated workflows and sharing apps. (Note * Cloud image/Package Management vs NPM package management, is it special like NPM?) )

From March 20, 2013, the first version of Docker officially released to June 2014 Docker 1.0 officially released, after 15 months. Although the development process is very short, Docker is getting more and more popular trend.

In fact, container technology is not the innovation of Docker, HeroKu, Nodejitsu and other cloud service providers have adopted similar lightweight virtualization technology, but Docker is the first to make this kind of container technology large-scale open-source and widely accepted by the community.

The good part

The advantages of Docker with respect to VM VMS are obvious: lightweight and high performance and convenience, and the following is excerpted from the KVM and Docker LXC benchmarking with OpenStack

Fast

Performance at runtime can be greatly improved (classic case is 97% increase)

Administrative operations (Start, stop, start, restart, and so on) are all in seconds or milliseconds.

Agile

As agile as a virtual machine and cheaper, it's as simple as a button on bare metal (bare metal).

Flexible

"Containerized" applications and systems without adding additional operating systems,

Light weight

You will have enough "OS" to add or decrease the image. You can 100~1000 a containers container on a single server.

Cheap

Open source, free, low cost. Supported and driven by the modern Linux kernel. Note * Light weight container must be able to open more "containers" on a physical machine, destined to be cheaper than VMS.

Eco-System

are getting more and more popular, just look at Google Trends and know that Docker or LXC.

There are countless community and third-party applications.

Cloud Support

Countless cloud services provide a framework for creating and managing Linux containers.

The benefits of Docker performance can also be referenced by this IBM Engineer's performance improvement Assessment, which has been greatly improved in all aspects than VMS (OS System level virtualization).

Performance characteristics of VMs vs Docker Containers by Boden Russel (IBM)

Performance characteristics of traditional V MS vs Docker Containers

A part of the argument

Any project will be controversial, like go, like Nodejs, and Docker has some.

can be completely isolated

In a hyper-complex business system, can the single OS be completely isolated, or will a program crash/memory overflow/high CPU usage affect other containers or the entire system? Many people have doubts about whether Docker can support mission-critical systems in a real-world multi-master production environment. Note * Just as someone questioned the node. JS single thread is fast and unstable and cannot be applied in complex scenarios.

Fortunately, the Linux kernel has made a lot of improvements to container to support better isolation.

The go language is not fully mature yet

Docker is developed by the go language, but the go language is unfamiliar to most developers, and it's still improving, and it's still a long way from being mature. This half-git, half-pack management approach has made some people uncomfortable.

Controlled by private companies

Docker is designed by a privately owned company called DotCloud, and the company is for profit, for example, you have no way to use the source code to Yi Docker projects, only the Docker binaries that are made with black boxes, which may not be completely free in the future. Docker is now offering enterprise-class services (consulting, support, and training) for the company.

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.