

Docker Engine là thành phần cốt lõi giúp Docker tạo, chạy và quản lý container. Khi thực hiện các lệnh quen thuộc như docker run, docker pull hay docker ps, người dùng thực chất đang tương tác với Docker Engine để yêu cầu hệ thống xử lý image, container, network và volume.
Vậy Docker Engine là gì, gồm những thành phần nào và hoạt động ra sao? Hãy cùng tìm hiểu chi tiết trong bài viết dưới đây.
Docker Engine là công nghệ container hóa mã nguồn mở hoạt động theo mô hình client-server, cho phép xây dựng, chạy và quản lý các ứng dụng dưới dạng container. Đây có thể xem là phần lõi chịu trách nhiệm thực thi phần lớn các tác vụ quan trọng trong môi trường Docker.
Docker Engine gồm ba thành phần chính:
Docker Daemon chạy nền trên máy chủ, tiếp nhận yêu cầu thông qua API và thực hiện những tác vụ như tạo container, quản lý image, cấu hình network hay volume. Docker CLI đóng vai trò giao diện dòng lệnh để người dùng gửi yêu cầu tới daemon.
Hiểu đơn giản, nếu Docker là một hệ sinh thái container thì Docker Engine chính là bộ máy trực tiếp vận hành container trong hệ sinh thái đó.

Docker Engine đảm nhận nhiều tác vụ quan trọng trong vòng đời container, từ lúc ứng dụng được đóng gói cho đến khi container chạy trên máy chủ.
Một số chức năng chính gồm:
Docker Engine cho phép tạo container từ Docker Image và quản lý trạng thái của container trong suốt quá trình hoạt động.
Ví dụ:
docker run nginxLệnh trên yêu cầu Docker Engine tạo và khởi chạy một container dựa trên image Nginx.
Docker Engine có thể làm việc với các image đang được lưu cục bộ hoặc tải image từ registry.
Một số thao tác phổ biến:
docker images
docker pull nginx
docker image rm nginxImage là khuôn mẫu được sử dụng để tạo container. Một image có thể được dùng để khởi chạy nhiều container khác nhau.
Docker Engine có hệ thống networking giúp container:
Người dùng có thể tạo và quản lý network bằng Docker CLI:
docker network lsDữ liệu bên trong container có thể bị mất khi container bị xóa. Docker Volume giúp tách dữ liệu khỏi vòng đời của container, phù hợp cho database, file cấu hình hoặc những dữ liệu cần lưu lâu dài.
Docker Daemon quản lý trực tiếp các đối tượng quan trọng gồm images, containers, networks và volumes.
Docker Engine được xây dựng theo kiến trúc client-server. Để hiểu cách Engine vận hành, cần nắm được ba thành phần cốt lõi sau.
Docker Daemon (dockerd) là tiến trình chạy nền và đóng vai trò trung tâm của Docker Engine.
Daemon lắng nghe các yêu cầu từ Docker API rồi thực hiện tác vụ tương ứng, chẳng hạn:
Ví dụ khi nhập:
docker run nginxDocker CLI không trực tiếp tạo container. Thay vào đó, CLI gửi yêu cầu tới Docker Daemon, sau đó daemon thực hiện các bước cần thiết để container được khởi chạy.
Daemon cũng có thể giao tiếp với các daemon khác trong một số mô hình triển khai Docker.
Docker Engine API cung cấp giao diện để ứng dụng và Docker CLI giao tiếp với Docker Daemon.
Đây là một RESTful API và có thể được truy cập thông qua HTTP client hoặc thư viện lập trình phù hợp. Ngoài CLI, developer cũng có thể sử dụng SDK hoặc trực tiếp gọi API để tự động hóa việc quản lý Docker.
Docker CLI (docker) là giao diện dòng lệnh được người dùng sử dụng để tương tác với Docker.
Ví dụ:
docker pull nginx
docker run nginx
docker ps
docker stop container_nameKhi nhập một lệnh, Docker CLI chuyển yêu cầu tới Docker Daemon thông qua Docker Engine API.
Điều này tạo thành mô hình:
Docker CLI → Docker API → Docker Daemon → Docker Object
Docker client cũng có khả năng kết nối tới nhiều Docker Daemon khác nhau, vì vậy daemon không nhất thiết phải chạy trên cùng một máy với client.

Bên dưới Docker Engine còn có những thành phần runtime quan trọng như containerd và runc.
Docker Engine sử dụng containerd để quản lý vòng đời container, bao gồm những tác vụ như:
Mặc định, containerd sử dụng runc làm container runtime để thực thi container.
Cách dễ nhất để hiểu Docker Engine là quan sát chuyện gì xảy ra khi chạy:
docker run nginxQuá trình có thể được tóm tắt thành các bước sau.
Người dùng nhập:
docker run nginxDocker CLI phân tích lệnh và gửi yêu cầu tới Docker Daemon thông qua Docker Engine API.
Daemon xác định người dùng muốn tạo một container dựa trên image nginx.
Docker Engine sẽ kiểm tra xem image đó đã tồn tại trên máy hay chưa.
Nếu image chưa tồn tại cục bộ, Docker sẽ tải image từ registry đã được cấu hình.
Trong trường hợp thông thường, image có thể được lấy từ Docker Hub.
Ví dụ thao tác tương đương:
docker pull nginxSau khi có image, Docker Engine tạo container dựa trên cấu hình của image cùng những tham số mà người dùng truyền vào lệnh docker run.
Engine cũng xử lý những thông tin liên quan như:
Docker Engine phối hợp với containerd và runtime để tạo tiến trình container trên hệ điều hành host.
Container sau đó bắt đầu chạy ứng dụng Nginx.
Sau khi container hoạt động, Engine tiếp tục theo dõi và cho phép thực hiện những thao tác như:
docker ps
docker logs
docker stop
docker restart
docker rmĐây cũng là lý do Docker Engine được xem là thành phần trung tâm trong quá trình quản lý vòng đời container.
Docker Engine làm việc với nhiều loại Docker Object. Trong đó quan trọng nhất là:
Đối tượng | Chức năng |
| Image | Mẫu dùng để tạo container |
| Container | Instance đang chạy hoặc đã dừng của image |
| Network | Quản lý kết nối mạng giữa các container |
| Volume | Lưu trữ dữ liệu độc lập với vòng đời container |
Ngoài ra, hệ sinh thái Docker còn có Dockerfile, registry, Docker Compose và nhiều thành phần khác hỗ trợ quá trình xây dựng cũng như triển khai ứng dụng.
Docker Engine và Docker Desktop thường bị nhầm là cùng một phần mềm. Tuy nhiên, phạm vi của hai khái niệm khác nhau.
Tiêu chí | Docker Engine | Docker Desktop |
| Bản chất | Engine container hóa | Bộ công cụ phát triển Docker |
| Thành phần chính | Daemon, API, CLI | Bao gồm Docker Engine và nhiều công cụ khác |
| Giao diện | Chủ yếu CLI/API | Có giao diện đồ họa và CLI |
| Môi trường phổ biến | Linux Server | Windows, macOS, Linux desktop |
| Docker Compose | Có thể cài plugin | Được tích hợp |
| Mục đích | Chạy và quản lý container | Môi trường Docker thuận tiện cho developer |
Docker Desktop bao gồm Docker Daemon, Docker CLI, Docker Compose cùng nhiều công cụ hỗ trợ phát triển container khác.
Nếu đang sử dụng laptop Windows hoặc macOS để phát triển ứng dụng, Docker Desktop thường thuận tiện hơn.
Ngược lại, khi triển khai workload container trực tiếp trên một Linux Server hoặc Cloud Server, Docker Engine thường là thành phần cần thiết để vận hành container mà không cần giao diện desktop.
Một nhầm lẫn khác là coi Docker Engine và Docker Container là cùng một khái niệm.
Thực tế:
Có thể ví Docker Engine như một nhà máy, Docker Image là bản thiết kế và container là sản phẩm được tạo từ bản thiết kế đó.
Một Docker Engine có thể quản lý nhiều container cùng lúc.

Sau khi cài Docker Engine, có thể kiểm tra phiên bản bằng:
docker versionXem thông tin hệ thống Docker:
docker infoLiệt kê image:
docker imagesLiệt kê container đang chạy:
docker psLiệt kê toàn bộ container:
docker ps -aTải image:
docker pull nginxKhởi chạy container:
docker run nginxDừng container:
docker stop <container>Xóa container:
docker rm <container>Các lệnh trên được Docker CLI gửi tới Docker Daemon thông qua API để Engine thực hiện tác vụ tương ứng.
Docker Engine có hướng dẫn cài đặt riêng cho nhiều bản phân phối Linux phổ biến như Ubuntu, Debian, Fedora, CentOS và RHEL.
Ví dụ trên Ubuntu, phương pháp phù hợp là cấu hình repository chính thức rồi cài các package cần thiết bằng APT.
Sau khi repository được cấu hình, các thành phần hiện tại có thể được cài bằng:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginSau khi cài đặt, kiểm tra trạng thái Docker:
sudo systemctl status dockerCó thể xác nhận Docker Engine hoạt động bằng:
sudo docker run hello-worldContainer hello-world được tải xuống và chạy thử. Nếu thông báo xác nhận xuất hiện, Docker Engine đã có thể hoạt động trên máy chủ.
Trong môi trường production, nên sử dụng phương pháp cài đặt và cập nhật bằng package manager thay vì tự quản lý các static binary để thuận tiện hơn trong việc cập nhật bảo mật.
Không hoàn toàn. Docker là tên của hệ sinh thái nền tảng và công cụ container, còn Docker Engine là công nghệ cốt lõi chịu trách nhiệm tạo và quản lý container.
Không. Docker Desktop là một ứng dụng hoàn chỉnh dành cho môi trường desktop và bao gồm Docker Engine cùng Docker CLI, Docker Compose và nhiều công cụ hỗ trợ khác.
Docker Engine chủ yếu được quản lý thông qua Docker CLI và API. Nếu cần môi trường có giao diện đồ họa trên máy cá nhân, Docker Desktop phù hợp hơn.
Có. Ubuntu nằm trong nhóm các nền tảng Linux được hỗ trợ cài đặt Docker Engine và có quy trình cài đặt riêng.
Có. Docker Engine sử dụng containerd để quản lý vòng đời container. Mặc định containerd sử dụng runc làm container runtime.
Có. Một Docker Engine có thể quản lý nhiều container, tùy thuộc cấu hình CPU, RAM, storage và giới hạn tài nguyên của máy chủ.
Docker Engine là nền tảng container hóa cốt lõi giúp tạo, chạy và quản lý Docker Container. Kiến trúc của Engine gồm Docker Daemon, Docker Engine API và Docker CLI, phối hợp với các thành phần runtime bên dưới để quản lý toàn bộ vòng đời container.
Với khả năng triển khai nhanh, quản lý nhất quán và phù hợp với môi trường Linux, Docker Engine được sử dụng rộng rãi trong development, CI/CD, microservices và các hệ thống chạy trên Cloud Server.
Nếu doanh nghiệp cần xây dựng môi trường Docker linh hoạt, VNPT Cloud Server cung cấp tài nguyên CPU, RAM, lưu trữ và hạ tầng mạng để triển khai Docker Engine, container cũng như các ứng dụng cloud theo nhu cầu thực tế.
