Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Containerd là gì? Phân biệt điểm khác nhau giữa Docker và Containerd

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:13/11/2025
Lượt xem

Đánh giá

5/5 - (1 bình chọn)
Speed optimizer 2

Containerd là một container runtime mã nguồn mở cấp cao, được thiết kế để quản lý toàn bộ vòng đời của container trên hệ điều hành máy chủ. Trong bài viết này mình sẽ giúp bạn hiểu rõ hơn về containerd, từ khái niệm, cách thức vận hành, so sánh với Docker và hướng dẫn cách cài đặt, cấu hình cơ bản để bạn có thể vận hành các ứng dụng container hóa một cách hiệu quả.

Những điểm chính

  1. Khái niệm containerd: Biết được đây là một container runtime mã nguồn mở cấp cao, chịu trách nhiệm thực thi và quản lý vòng đời của container trên hệ điều hành máy chủ.
  2. Cách thức vận hành và quản lý: Vận hành qua việc nhận chỉ thị qua API, quản lý image, tạo snapshot, tạo và quản lý task, chạy container engine tiêu chuẩn, theo dõi trạng thái và sử dụng namespace để phân tách workload.
  3. So sánh với Docker: Docker là công cụ all-in-one, trong khi containerd là runtime thuần túy chuyên quản lý vòng đời container. containerd nhẹ hơn, phù hợp tích hợp sâu với Kubernetes.
  4. Cài đặt và cấu hình cơ bản: Được hướng dẫn chi tiết các bước cài đặt và cấu hình containerd cơ bản.
  5. Giới thiệu Vietnix: Biết được Vietnix cung cấp nền tảng Enterprise Cloud tối ưu cho môi trường containerd.
  6. Câu hỏi thường gặp: Được giải đáp các thắc mắc liên quan đến containerd.
những điểm chính

Containerd là gì?

Containerd là một container runtime mã nguồn mở cấp cao, được thiết kế để quản lý toàn bộ vòng đời của container – từ khởi tạo, thực thi, giám sát cho tới dừng và xóa container trên hệ thống máy chủ.

Containerd là một container runtime mã nguồn mở
Containerd là một container runtime mã nguồn mở

Lịch sử của containerd có nguồn gốc từ Docker Engine, nơi thành phần này ban đầu giữ vai trò là runtime cốt lõi. Với mục tiêu thúc đẩy quá trình chuẩn hóa ngành công nghiệp container, Docker đã quyết định tách biệt thành phần này thành một dự án độc lập và đóng góp cho Cloud Native Computing Foundation (CNCF) vào tháng 3 năm 2017.

Sau một thời gian phát triển dưới sự bảo trợ của CNCF, containerd đã đạt đến một dấu mốc quan trọng vào tháng 2 năm 2019 khi chính thức minh chứng cho sự trưởng thành, ổn định và việc được cộng đồng tin tưởng ứng dụng rộng rãi.

Kể từ đó, containerd đã khẳng định vị thế của mình như một container runtime tiêu chuẩn công nghiệp, được giới công nghệ thừa nhận rộng rãi nhờ vào khả năng mở rộng, hiệu suất và tính ổn định vượt trội.

Cách thức vận hành và quản lý container

Containerd vận hành và quản lý container thông qua một quy trình chặt chẽ với các bước và thành phần phối hợp như sau:

  • Nhận chỉ thị qua API: Containerd hoạt động như một daemon nhận yêu cầu quản lý container qua giao thức gRPC API từ các công cụ cấp cao như Docker hoặc Kubernetes.
  • Quản lý image: Khi cần tạo container, containerd sẽ kéo và lưu trữ image cần thiết thông qua Image Service và Content Store. Image sẽ trải qua các thao tác kiểm tra, truy xuất và lưu trữ layer để đảm bảo đầy đủ dữ liệu phục vụ khởi tạo container.
  • Tạo snapshot: Snapshotter tạo file hệ thống nền (filesystem snapshot), hỗ trợ copy-on-write để mỗi container có thể khởi tạo nhanh trên nền image gốc mà không tốn thêm nhiều dung lượng lưu trữ.
  • Tạo và quản lý task: Quá trình khởi tạo container thực chất là việc tạo một task mới trong containerd. Task này đại diện cho instance container đang chạy, được kiểm soát chặt chẽ qua Task Service (bao gồm việc start, stop, pause, resume, hoặc xóa task/container).
  • Chạy container engine tiêu chuẩn (runc): Containerd phối hợp với runc (runtime tiêu chuẩn theo OCI) để thực sự chạy các container – tức là tạo môi trường cô lập (namespace, cgroup) và thực thi tiến trình trong container đó.
  • Theo dõi và quản lý trạng thái: Containerd giám sát trạng thái container (đang chạy, dừng, lỗi…) và phát sinh sự kiện thông qua Event Service. Các event này giúp các nền tảng như Kubernetes cập nhật và kiểm soát vòng đời ứng dụng kịp thời.
  • Namespace phân tách workloads: Containerd sử dụng cơ chế namespace để cô lập tài nguyên, đảm bảo nhiều hệ thống hoặc tenant có thể sử dụng chung một instance containerd mà không can thiệp lẫn nhau.
Cách thức vận hành và quản lý container
Cách thức vận hành và quản lý container

So sánh Containerd và Docker

Khi so sánh hai công cụ container phổ biến là Docker và Containerd, việc hiểu rõ điểm giống và khác nhau giúp người dùng lựa chọn phù hợp với mục đích sử dụng và môi trường triển khai. Dưới đây là bảng so sánh chi tiết giữa Docker và Containerd về các khía cạnh như kiến trúc, chức năng và phạm vi ứng dụng, giúp làm rõ vai trò cũng như lợi ích riêng biệt của từng công cụ trong hệ sinh thái container hiện đại:

Tiêu chíDockerContainerd
Mục đích sử dụngCông cụ all-in-one: build, pull, push image, quản lý container, compose, registry, network, volume…Container runtime thuần túy chuyên quản lý vòng đời container (runtime)
Kiến trúcGồm CLI, Docker daemon, API, build image, network, volume…Daemon nhẹ, tập trung vào runtime, không quản lý build image hoặc tiện ích cao cấp
CLI (giao diện dòng lệnh)Đầy đủ, thân thiện, tích hợp nhiều tiện íchKhông có CLI gốc, thao tác qua ctr/nerdctl hoặc API gRPC
Build/push imageHỗ trợ trực tiếp, tích hợp build/push lên registry dễ dàngKhông hỗ trợ build image, chỉ pull và chạy image có sẵn
Tích hợp/ứng dụngPhát triển local, CI/CD pipeline, test, single-node hoặc multi-node projectTích hợp sâu với Kubernetes, cloud native, sản xuất quy mô lớn
Mức độ mở rộngTốt, nhưng thường dùng cho dev/test hoặc pipeline nhỏ/trung bìnhTối ưu cho orchestration, vận hành container production, hiệu suất cao
Phạm vi quản lýToàn bộ vòng đời ứng dụng container, cả khâu packaging, mạng, các plugin…Chỉ quản lý thực thi container ở mức hệ điều hành
Phù hợp sử dụng khiPhát triển, kiểm thử, triển khai CI/CD, quản lý toàn diệnCần lightweight, chỉ sử dụng runtime hoặc tích hợp nền tảng lớn

Cài đặt và cấu hình containerd

Bạn cài đặt Containerd trên Ubuntu bằng câu lệnh:

sudo apt update
sudo apt install -y containerd

Tiếp đó bạn khởi tạo file cấu hình mặc định:

sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

Bạn chỉnh sửa file cấu hình config.toml (ví dụ cấu hình systemd làm cgroup driver):

Bạn mở file bằng câu lệnh:

sudo nano /etc/containerd/config.toml

Bạn tìm phần plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options và thêm hoặc sửa dòng sau:

SystemdCgroup = true
Thêm dòng SystemdCgroup = true
Thêm dòng SystemdCgroup = true

Bạn khởi động và kích hoạt dịch vụ containerd bằng câu lệnh:

sudo systemctl restart containerd
sudo systemctl enable containerd
sudo systemctl status containerd

Sử dụng công cụ dòng lệnh ctr quản lý containerd:

  • Liệt kê các container đang chạy:
sudo ctr containers list
  • Liệt kê các images đã pull:
sudo ctr images list
  • Pull một image (ví dụ nginx):
sudo ctr images pull docker.io/library/nginx:latest
  • Tạo và chạy container từ image:
sudo ctr run -d --rm docker.io/library/nginx:latest nginx-container
  • Dừng container:
sudo ctr tasks kill nginx-container
  • Xóa container:
sudo ctr containers delete nginx-container

Docker tương tác với container như thế nào?

Để hiểu rõ hơn về cơ chế tương tác này, cần phân tích quy trình diễn ra khi lệnh docker run được thực thi:

  • Sau khi người dùng xác nhận lệnh, Docker CLI sẽ chuyển tiếp lệnh run cùng với toàn bộ các tham số dòng lệnh tới Docker daemon (dockerd) thông qua một lệnh gọi API REST.
  • dockerd tiến hành phân tích cú pháp và xác thực yêu cầu, tiếp theo là kiểm tra sự hiện diện của image container trên hệ thống cục bộ; trong trường hợp image không có sẵn, dockerd sẽ thực hiện tải về từ registry đã được định cấu hình.
  • Một khi image đã ở trạng thái sẵn sàng, dockerd sẽ chuyển giao quyền điều khiển cho containerd, giao phó nhiệm vụ khởi tạo container từ image đó.
  • Tiếp theo, containerd sẽ đảm nhiệm việc thiết lập môi trường cho container, một quy trình bao gồm các tác vụ nền tảng như cấu hình hệ thống tập tin, các giao diện mạng, và triển khai các tính năng cô lập cần thiết.
  • containerd sau đó sẽ ủy thác tác vụ thực thi container cho runc thông qua việc sử dụng một tiến trình đệm (shim process), và chính tiến trình này sẽ trực tiếp tạo và khởi chạy container.
  • Cuối cùng, sau khi container đã đi vào trạng thái hoạt động, containerd sẽ đảm nhận vai trò giám sát liên tục trạng thái của container và quản lý toàn bộ vòng đời của nó một cách tương ứng.

Docker giữ vai trò nền tảng trong suốt vòng đời của containerd, từ giai đoạn khởi tạo, quá trình đóng góp cho Cloud Native Computing Foundation (CNCF), cho đến các hoạt động phát triển về sau. Sự tham gia này đã góp phần thiết lập một tiêu chuẩn chung cho các container runtime (trình thực thi container), đồng thời gia tăng đáng kể sự đóng góp của cộng đồng mã nguồn mở vào quá trình phát triển của containerd. Hiện tại, Docker vẫn cam kết với sự phát triển của hệ sinh thái container mã nguồn mở thông qua việc bảo trì và liên tục cải tiến containerd.

Về mặt kiến trúc, containerd tập trung vào các chức năng vận hành cốt lõi của một container, trở thành một lựa chọn kỹ thuật tối ưu cho những tình huống đòi hỏi quyền truy cập vào các thành phần nội bộ ở tầng thấp (lower-level internals) hoặc các tính năng nâng cao.

Trong khi đó, Docker tận dụng containerd làm nền tảng cấp thấp để xây dựng một hệ sinh thái công cụ hoàn chỉnh, cung cấp trải nghiệm phát triển nhất quán cho toàn bộ chu trình từ xây dựng, thực thi, kiểm thử, xác minh đến chia sẻ container.

Build + Run

Trong môi trường phát triển, các công cụ như Docker Desktop, Docker CLI và Docker Compose cung cấp khả năng định nghĩa, xây dựng và vận hành các môi trường đơn hoặc đa container một cách hiệu quả. Những công cụ này có khả năng tích hợp chặt chẽ với các trình soạn thảo mã nguồn và môi trường phát triển tích hợp (IDE) phổ biến, cũng như được nhúng trực tiếp vào các quy trình Tích hợp liên tục/Triển khai liên tục (CI/CD).

Test

Một trong những thách thức cố hữu đối với lập trình viên là việc đảm bảo tính nhất quán của môi trường và kết quả kiểm thử. Công cụ Testcontainers giải quyết vấn đề này bằng cách loại bỏ các lo ngại về khả năng tái tạo (reproducibility) giữa các môi trường khác nhau như phát triển (dev), dàn dựng (staging), kiểm thử (testing) và sản phẩm (production). Testcontainers còn mang lại cơ chế sử dụng container để quản lý các phần phụ thuộc (dependency) một cách độc lập, cho phép thực thi kiểm thử song song và đơn giản hóa quá trình tích hợp vào hệ thống CI/CD.

Verification

Docker Scout hiện thực hóa phương pháp luận bảo mật “chuyển dịch sang trái” (shift-left) bằng cách tích hợp với Docker Desktop, Docker Hub và Docker CLI để thực hiện phân tích sâu hình ảnh container và tạo ra Danh mục Vật liệu Phần mềm (SBOM). Quá trình này trang bị cho các nhà phát triển công cụ cần thiết để chủ động phát hiện và khắc phục các lỗ hổng bảo mật, góp phần thiết lập một chuỗi cung ứng phần mềm được bảo vệ toàn diện.

Share

Docker Registry hoạt động như một dịch vụ kho lưu trữ tập trung và bảo mật, cho phép các nhà phát triển lưu trữ và phân phối hình ảnh container một cách có kiểm soát. Bằng việc cung cấp một điểm chia sẻ chung, cơ chế này đóng vai trò quan trọng trong việc duy trì tính nhất quán của các cấu phần phần mềm và tối ưu hóa hiệu suất trong toàn bộ vòng đời phát triển cũng như triển khai.

Vietnix cung cấp nền tảng Enterprise Cloud tối ưu cho môi trường containerd

Để khai thác tối đa sức mạnh của công nghệ container và các Container Runtime như containerd, doanh nghiệp cần một nền tảng hạ tầng (IaaS) mạnh mẽ, linh hoạt và được kiểm soát toàn diện. Vietnix cung cấp dịch vụ Enterprise Cloud, là giải pháp lý tưởng đáp ứng các yêu cầu khắt khe này.

Với Enterprise Cloud của Vietnix, bạn có toàn quyền kiểm soát hạ tầng, từ việc thiết lập các máy chủ ảo hiệu năng cao đến việc triển khai các cụm Kubernetes. Nền tảng của Vietnix được xây dựng trên CPU AMD EPYC và 100% ổ cứng NVMe, đảm bảo các container của bạn hoạt động ổn định và có khả năng mở rộng linh hoạt.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh

Câu hỏi thường gặp

Containerd được phát triển như thế nào?

Ban đầu, containerd là một thành phần bên trong Docker, chuyên xử lý phần runtime. Sau đó, để tối ưu cho môi trường cloud-native và các hệ thống orchestration lớn, containerd đã tách riêng, trở thành dự án độc lập dưới CNCF, đem lại khả năng mở rộng và tích hợp mạnh mẽ với các nền tảng như Kubernetes.

Containerd có giao diện dòng lệnh (CLI) không?

Có. Containerd cung cấp một công cụ dòng lệnh tên là ctr. Công cụ này được thiết kế chủ yếu cho việc gỡ lỗi (debug) và phát triển, cho phép tương tác trực tiếp với daemon containerd mà không cần thông qua các lớp trừu tượng cấp cao hơn như Docker.

Tìm mã nguồn của containerd ở đâu?

Mã nguồn và trang dự án chính thức của containerd được đặt trên GitHub tại địa chỉ: https://github.com/containerd/containerd.

Khi nào nên lựa chọn sử dụng containerd thay vì Docker?

Containerd thích hợp khi bạn triển khai môi trường production có khối lượng lớn container, cần runtime nhẹ, hiệu suất cao, hoặc cần tích hợp sâu với hệ thống orchestration như Kubernetes. Docker phù hợp hơn với môi trường phát triển, test, pipeline CI/CD nhỏ/trung bình do có nhiều tiện ích đi kèm.

Có thể tích hợp containerd với Kubernetes không?

Hoàn toàn có thể. Kubernetes sử dụng containerd làm runtime tiêu chuẩn giúp quản lý container linh hoạt, mở rộng dễ dàng, đảm bảo hiệu suất và khả năng tự động hóa (orchestration) cho môi trường ảo hóa doanh nghiệp.

Containerd liên quan gì tới Docker?

Docker đã tạo ra containerd, sau đó tách nó ra và đóng góp cho cộng đồng để trở thành một tiêu chuẩn công nghiệp. Ngày nay, Docker sử dụng lại chính “đứa con” của mình như một thành phần nền tảng, tạo nên một mối quan hệ cộng sinh: Docker cung cấp trải nghiệm người dùng và bộ công cụ toàn diện, trong khi containerd cung cấp sức mạnh thực thi cốt lõi, ổn định và hiệu suất cao ở phía dưới.

Containerd là một mắt xích quan trọng trong hệ sinh thái container hiện đại, giúp quản lý vòng đời container một cách hiệu quả, an toàn và linh hoạt. Việc hiểu rõ cơ chế hoạt động cũng như điểm khác biệt giữa containerd và các giải pháp khác như Docker sẽ giúp bạn xây dựng hệ thống ứng dụng ổn định, tối ưu tài nguyên và đáp ứng nhanh các nhu cầu mở rộng khi doanh nghiệp phát triển.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG