Docker is dead? Listen to what he said (let's start the class)


At the end of 2020, Kubernetes announced in the latest Changelog at the time that Docker would be abandoned after V1.20, which caused a wave of waves with one stone. Docker image can’t be used anymore? Is Podman going to replace Docker?

Since then, news of bad news about Docker has been heard. On March 9, let's start the class "Hello, World Open Class" invites Ma Ruofei, the author of "Istio Practical Guide" and a core member of the ServiceMesher.com management committee, to let him talk about what is happening with Docker now?

Why you need virtualization technology

For individuals, virtual machines have very important applications in personal presentations, backups, and isolation. Xiaokai vaguely remembers that Siemens’ WinCC and Step7 are used to graduate from university to do graduation design, but Siemens’ software does not support Windows 10. In order not to rebuild the system, Xiaokai used VMM to virtualize a Windows7 system and successfully completed the graduation project.

For enterprises, virtualization technology is even more important. It is a resource management technology and a means to reorganize system resources. Taking Java Web applications as an example, if you want to deploy code to a virtual machine, you need Go through three steps

Compile into a war package.
Deploy a web server on a VM or cloud host. For example, Tomcat
uploads (scp) the war package to the VM.
Insert picture description here
But here is a problem. If you deploy multiple applications in multiple environments, what should you do?

At this time, the emergence of PaaS solves the above problems. PaaS provides a complete set of application packaging and distribution mechanisms and sandbox (container) isolation applications. But PaaS has its own problems

You need to maintain a package for different languages, different frameworks, and different versions.
Locally runable applications (packages) cannot run after deployment. You need to modify the environment and configuration.
One-click deployment of applications requires maintenance.

Seeing it rise up, see it collapse

Before 2013, Docker was still an obscure small company. At this time, PaaS is still the world. As we mentioned earlier, the biggest problem of PaaS platform is that the cost of environmental maintenance is too high. The killer of Docker that defeats PaaS is that Docker mirrors package the application and the environment as a whole. Mirroring to any instance, through this dimensionality reduction attack, Dcoker unilaterally announced the end of the Paas platform.

After Docker became popular, it quickly showed its ambitions in commercialization. In 2014, Docker released the container orchestration tool Swarm. Docker not only wants to be the hero behind the scenes, it wants to build its own ecosystem. Swarm has since become the master of operating the Docker ecosystem.

However, the release of Swarm offended CoreOS, Docker's largest contributor, and CoreOS launched its own RKT container at the end of 2014.

In the same year, the current industry leader, Kubernetes, was released. Thanks to the accumulation of Google’s years of experience, Kubernetes avoided direct contact with Docker by relying on new design concepts, such as declarative APIs, and gradually eroded the Swarm market share.

The previous rivals were catching up, but at this time Docker was fainted in commercialization. For Docker, the top open source project, Docker adopted a strong commercial strategy, and even a word of truth appeared.

image

In order to counter Docker's tough policies, a large number of manufacturers have turned back. At the same time, the Cloud Native Foundation (CNCF) was established, which accelerated the construction of the Kubernetes ecosystem. At this time, Kubernetes has become a hot application in the container field by virtue of its open and democratic strategy.

When the time came to 2017, Docker announced that Docker would have built-in Kubernetes, which means that Docker has surrendered to Kubernetes. In September 2020, Docker announced that it would give up updating Swarm.

At the end of the same year, a blockbuster occurred in the industry. Kubernetes announced that it would give up support for the Docker runtime. This means that Kubernetes unilaterally announced the victory of the Docker commercial war, just as Docker revolutionized the PaaS platform.

It is true that Docker is still the most popular container building tool, and the user population is very large. But just like the famous saying, the veteran does not die, but gradually withers.

Seeing it rise up tall buildings, watch it banquet guests, watch it collapse!

Insert picture description here

Docker underlying technology

Docker underlying engine technology is a typical multi-component application of C/S architecture, divided into Server-side dockerd and Client-side CLI, and the middle layer is Rest API. If we analyze the underlying core technology of Docker, we can find that many Linux/Unix technologies have been borrowed from

namespace
cgroup
rootfs/UnionFS

The namespace is isolated, and only a part of the resources can be seen by restricting the container. The main function of cgroup is resource restriction. Through resource restriction on the process, the process can only use part of the system resources, such as CPU, disk, network bandwidth, etc. And rootfs/UnionFS is a joint file system based on Linux.

In simple terms, we can think of the container as an isolated runtime environment composed of namespace and cgroup.

Insert picture description here

Docker commonly used commands
Insert picture description here

Guess you like

Origin blog.csdn.net/xianyu120/article/details/114753662