tailieu-Docker

Ghi chép lại quá trình tìm hiểu Docker

View the Project on GitHub lamth/tailieu-Docker

Docker Engine

Để sử dụng Docker thì bạn có thể bở qua bài này.Để thực sự master một thứ gì đó, bạn cần hiểu rõ cơ chế hoạt động của nó. Đây là bài lý thuyết, không có bài tập thực hành.

Docker Engine

Docker Engine - The Deep Dive

runc

Lợi ích của mô hình này.

Chapter summary

The Docker engine is modular in design and based heavily on open-standards from the OCI. The Docker daemon implements the Docker API which is currently a rich, versioned, HTTP API that has developed alongside the rest of the Docker project. Container execution is handled by containerd. containerd was written by Docker, Inc. and contributed to the CNCF. You can think of it as a container supervisor that handles container lifecycle operations. It is small and lightweight and can be used by other projects and third-party tools. For example, it’s poised to become the default, and most common, container runtime in Kubernetes. containerd needs to talk to an OCI-compliant container runtime to actually create containers. By default, Docker uses runc as its default container runtime. runc is the de facto implementation of the OCI container-runtime-spec and expects to start containers from OCI-compliant bundles. containerd talks to runc and ensures Docker images are presented to runc as OCI-compliant bundles. runc can be used as a standalone CLI tool to create containers. It’s based on code from libcontainer, and can also be used by other projects and third-party tools. There is still a lot of functionality implemented in the Docker daemon. More of this may be broken out over time. Functionality currently still inside of the Docker daemon include, but is not limited to: the API, image management, authentication, security features, core networking, and volumes. The work of modularizing the Docker engine is ongoing