Thứ Bảy, 15/08/2026, 17:00 (GMT+0)

Containerd là gì? Cách hoạt động và vai trò của containerd

Quay lại Trang chủ Blog
Trên trang này

Khi tìm hiểu về Docker hoặc Kubernetes, bên cạnh khái niệm container, bạn có thể thường xuyên bắt gặp containerd. Đây là một thành phần quan trọng giúp hệ thống tạo, chạy và quản lý vòng đời của container.

Vậy containerd là gì, hoạt động như thế nào và khác Docker hay runc ở điểm nào? Bài viết dưới đây sẽ giải thích những nội dung cơ bản nhất để bạn dễ hình dung vai trò của containerd trong môi trường container hiện nay.

Containerd là gì?

Containerd là một container runtime mã nguồn mở, chịu trách nhiệm quản lý vòng đời của container trên một máy chủ. Nó có thể thực hiện nhiều công việc như quản lý container image, tạo và chạy container, dừng container cũng như giám sát quá trình thực thi.

Containerd được thiết kế với mục tiêu đơn giản, ổn định và có khả năng hoạt động trên nhiều môi trường khác nhau. Hiện nay, containerd có thể chạy trên cả Linux và Windows và được sử dụng trong nhiều nền tảng container phổ biến.

Một điểm cần lưu ý là containerd chủ yếu được thiết kế để tích hợp vào các hệ thống lớn hơn, thay vì cung cấp đầy đủ trải nghiệm quản lý container trực tiếp cho developer giống như Docker.

Docker Engine là một ví dụ điển hình. Khi người dùng yêu cầu Docker khởi động một container, Docker có thể sử dụng containerd ở phía dưới để thực hiện các tác vụ quản lý vòng đời container.

Containerd-2.jpg

Container runtime là gì?

Để hiểu containerd, trước tiên cần hiểu khái niệm container runtime.

Container runtime là phần mềm chịu trách nhiệm giúp container thực sự chạy trên hệ điều hành. Khi một ứng dụng đã được đóng gói thành container image, runtime sẽ đảm nhiệm các công việc cần thiết để tạo và duy trì container từ image đó.

Có thể hiểu đơn giản:

  • Container image là gói chứa ứng dụng và các thành phần cần thiết.
  • Container runtime giúp biến image thành container đang chạy.
  • Containerd là một trong những container runtime phổ biến hiện nay.

Trong Kubernetes, container runtime là thành phần cơ bản chịu trách nhiệm quản lý quá trình thực thi và vòng đời container trên các node. Kubernetes hiện hỗ trợ những runtime tương thích với Container Runtime Interface (CRI), trong đó containerd là một lựa chọn phổ biến.

Containerd dùng để làm gì?

Containerd đảm nhiệm nhiều công việc liên quan đến vòng đời của container. Một số chức năng chính gồm:

Quản lý container image

Trước khi container có thể chạy, hệ thống cần có container image.

Containerd hỗ trợ các hoạt động liên quan đến image như tải image từ registry, lưu trữ image trên máy chủ và cung cấp dữ liệu image để tạo container.

Ví dụ, khi một hệ thống cần chạy ứng dụng từ một image, containerd có thể lấy image cần thiết từ container registry và chuẩn bị image đó cho quá trình khởi chạy container.

Quản lý vòng đời container

Containerd có thể quản lý các hoạt động quan trọng trong vòng đời container như:

  • Tạo container.
  • Khởi động container.
  • Dừng container.
  • Xóa container.
  • Theo dõi trạng thái container.

Nhờ đó, các nền tảng phía trên như Docker hay Kubernetes không cần tự xử lý toàn bộ những công việc ở tầng runtime.

Quản lý tài nguyên lưu trữ

Container image thường được chia thành nhiều layer. Containerd hỗ trợ quản lý dữ liệu và filesystem cần thiết để container có thể sử dụng các layer này khi chạy.

Trong các phiên bản hiện đại, containerd sử dụng cơ chế snapshotter để quản lý cách dữ liệu image và container được lưu trữ, truy cập trên filesystem.

Tuy nhiên, với người mới tìm hiểu containerd, chỉ cần hiểu rằng đây là thành phần giúp chuẩn bị và quản lý dữ liệu cần thiết để container có thể hoạt động.

Kết nối với runtime cấp thấp

Containerd quản lý container nhưng vẫn có thể sử dụng một runtime cấp thấp hơn để thực hiện quá trình tạo container ở cấp hệ điều hành.

Một runtime rất phổ biến trong trường hợp này là runc.

Có thể hình dung đơn giản:

containerd → runc → hệ điều hành

Containerd quản lý vòng đời tổng thể, còn runc thực hiện công việc ở tầng thấp hơn để tạo và chạy container theo các tiêu chuẩn OCI.

Containerd hoạt động như thế nào?

Quá trình hoạt động thực tế của containerd có nhiều thành phần kỹ thuật. Tuy nhiên, nếu chỉ cần hiểu ở mức cơ bản, có thể chia thành một số bước sau.

Bước 1: Nhận yêu cầu chạy container

Yêu cầu có thể xuất phát từ một nền tảng phía trên như Docker Engine hoặc Kubernetes.

Ví dụ, Kubernetes xác định rằng một Pod cần được chạy trên một node. Hệ thống sau đó gửi yêu cầu tới container runtime trên node đó.

Bước 2: Chuẩn bị container image

Nếu máy chủ chưa có image cần thiết, containerd có thể tải image từ container registry.

Image sau đó được lưu trữ và chuẩn bị filesystem để sử dụng cho container.

Bước 3: Chuẩn bị môi trường container

Containerd chuẩn bị những thông tin cần thiết để container có thể được khởi tạo, chẳng hạn như filesystem và cấu hình runtime.

Bước 4: Runtime thực thi container

Containerd có thể gọi một runtime cấp thấp như runc để thực hiện quá trình tạo và khởi chạy container.

Sau khi container đã được tạo, containerd tiếp tục quản lý và theo dõi vòng đời của container.

Nhờ việc tách các chức năng thành nhiều lớp, những nền tảng như Docker và Kubernetes có thể tập trung vào các chức năng ở cấp cao hơn thay vì tự xử lý toàn bộ công việc liên quan đến hệ điều hành.

Containerd và Docker có mối quan hệ như thế nào?

Containerd và Docker thường bị nhầm là hai công nghệ cạnh tranh trực tiếp, nhưng thực tế chúng hoạt động ở những lớp khác nhau.

Docker cung cấp một hệ sinh thái và bộ công cụ hoàn chỉnh hơn cho việc xây dựng, đóng gói và chạy container. Trong khi đó, containerd tập trung chủ yếu vào việc quản lý image và vòng đời container.

Docker Engine sử dụng containerd ở phía dưới để thực hiện các công việc như tạo, khởi động và dừng container.

Có thể hình dung đơn giản:

Người dùng → Docker → containerd → runtime → hệ điều hành

Do đó, khi bạn chạy:

docker run

người dùng không cần trực tiếp làm việc với containerd. Docker xử lý giao diện và những chức năng cấp cao hơn, còn containerd đảm nhiệm một phần công việc phía dưới.

Containerd khác Docker như thế nào?

Tiêu chí

Docker

Containerd

Mục đíchNền tảng và công cụ làm việc với containerContainer runtime
Đối tượngDeveloper, DevOpsNền tảng container, Kubernetes, hạ tầng
Build imageCó công cụ hỗ trợKhông phải chức năng trọng tâm
Quản lý container
Quản lý image
Trải nghiệm người dùngĐầy đủ, dễ sử dụng hơnChủ yếu tích hợp vào hệ thống khác
Quan hệCó thể sử dụng containerd bên dướiLà thành phần runtime

Vì vậy, câu hỏi “Docker hay containerd tốt hơn?” không hoàn toàn chính xác. Hai công nghệ phục vụ những mục đích khác nhau và có thể cùng tồn tại trong một hệ thống.

Containerd và runc khác nhau như thế nào?

Một cặp khái niệm khác cũng thường gây nhầm lẫn là containerd và runc.

Cả hai đều tham gia vào quá trình chạy container nhưng đảm nhiệm những vai trò khác nhau.

Containerd

Containerd quản lý các tác vụ ở cấp cao hơn như:

  • Image.
  • Storage.
  • Container lifecycle.
  • Theo dõi container.
  • Giao tiếp với những nền tảng phía trên.

runc

runc là runtime cấp thấp, chịu trách nhiệm trực tiếp hơn trong việc tạo và chạy container dựa trên tiêu chuẩn OCI.

Có thể hiểu:

containerd là người quản lý, còn runc là thành phần thực hiện công việc tạo container ở tầng thấp hơn.

Trong sử dụng thông thường, developer không cần tương tác trực tiếp với runc.

Containerd có vai trò gì trong Kubernetes?

Containerd được sử dụng rộng rãi làm container runtime cho Kubernetes.

Mỗi node trong Kubernetes cần có một container runtime để những container thuộc các Pod có thể chạy. Kubernetes giao tiếp với runtime thông qua tiêu chuẩn Container Runtime Interface – CRI.

Có thể hình dung quá trình theo cách đơn giản:

Kubernetes → CRI → containerd → runtime → container

Kubelet trên Kubernetes node gửi yêu cầu tới runtime. Containerd sau đó thực hiện những tác vụ cần thiết để chuẩn bị và chạy container.

Từ Kubernetes 1.24, thành phần dockershim từng cung cấp tích hợp trực tiếp với Docker Engine đã được loại bỏ khỏi Kubernetes. Điều này không có nghĩa Kubernetes “không chạy container Docker”, mà Kubernetes chuyển sang làm việc với các container runtime thông qua CRI.

Ưu điểm của containerd

Containerd được sử dụng rộng rãi trong các nền tảng cloud native nhờ một số đặc điểm đáng chú ý.

Thiết kế tập trung vào container runtime

Containerd không cố gắng cung cấp quá nhiều chức năng ở tầng developer. Thay vào đó, nó tập trung vào quản lý image, thực thi và vòng đời container.

Thiết kế này giúp containerd phù hợp để tích hợp vào các nền tảng container lớn hơn.

Hỗ trợ các tiêu chuẩn phổ biến

Containerd hỗ trợ các tiêu chuẩn của Open Container Initiative (OCI), giúp tăng khả năng tương thích trong hệ sinh thái container.

Điều này cho phép các nền tảng và công cụ container sử dụng những chuẩn chung thay vì phụ thuộc hoàn toàn vào một công nghệ riêng biệt.

Tích hợp tốt với Kubernetes

Containerd có thể hoạt động như CRI runtime cho Kubernetes nên được sử dụng phổ biến trong môi trường Kubernetes cluster.

Mã nguồn mở

Containerd là dự án mã nguồn mở và hiện thuộc Cloud Native Computing Foundation (CNCF) với trạng thái Graduated.

Điều này cho thấy containerd đã trở thành một thành phần trưởng thành trong hệ sinh thái cloud native.

Containerd-2.jpg

Containerd được sử dụng trong trường hợp nào?

Người dùng thông thường không nhất thiết phải trực tiếp lựa chọn containerd.

Nếu bạn chỉ muốn phát triển ứng dụng và chạy container trên máy tính cá nhân, Docker thường cung cấp trải nghiệm thuận tiện hơn.

Containerd đặc biệt phù hợp trong những trường hợp như:

  • Xây dựng Kubernetes cluster.
  • Xây dựng nền tảng container.
  • Triển khai hạ tầng cloud native.
  • Cần container runtime để tích hợp vào một hệ thống lớn hơn.
  • Xây dựng nền tảng quản lý container riêng.

Bản thân containerd cũng được thiết kế chủ yếu để trở thành thành phần bên trong một hệ thống lớn hơn thay vì một công cụ trực tiếp dành cho end user.

Một số câu hỏi thường gặp về containerd

Containerd có phải Docker không?

Không. Containerd là một container runtime, còn Docker cung cấp một nền tảng và bộ công cụ rộng hơn để xây dựng, đóng gói và chạy container.

Docker Engine có thể sử dụng containerd ở phía dưới để thực hiện các tác vụ quản lý container.

Docker có sử dụng containerd không?

Có. Docker Engine sử dụng containerd để thực hiện những hoạt động liên quan đến vòng đời container như tạo, khởi động và dừng container.

Containerd có thể hoạt động mà không cần Docker không?

Có. Containerd là một dự án độc lập và không cần Docker để hoạt động.

Đây cũng là lý do containerd có thể được sử dụng trực tiếp làm container runtime cho Kubernetes.

Containerd và runc có giống nhau không?

Không. Containerd quản lý vòng đời container ở cấp cao hơn, trong khi runc là runtime cấp thấp chịu trách nhiệm thực thi container.

Trong nhiều hệ thống, containerd có thể sử dụng runc ở lớp phía dưới.

Kubernetes có sử dụng containerd không?

Có. Containerd là một trong những container runtime được Kubernetes hỗ trợ thông qua Container Runtime Interface (CRI).

Kết luận

Containerd là container runtime mã nguồn mở có nhiệm vụ quản lý image và vòng đời container, bao gồm những hoạt động như tạo, chạy, dừng và giám sát container. Nó đóng vai trò quan trọng trong hệ sinh thái container và được sử dụng phía dưới nhiều nền tảng như Docker cũng như trong các hệ thống Kubernetes.

Nếu mới tiếp cận container, bạn chỉ cần ghi nhớ mối quan hệ cơ bản: Docker cung cấp bộ công cụ làm việc với container, containerd quản lý vòng đời container, còn runtime cấp thấp như runc thực hiện quá trình tạo và chạy container ở tầng hệ điều hành.

Với các hệ thống doanh nghiệp triển khai ứng dụng container, Kubernetes hoặc kiến trúc cloud native, một nền tảng hạ tầng ổn định sẽ giúp việc mở rộng tài nguyên và vận hành workload thuận tiện hơn. VNPT Cloud cung cấp các dịch vụ hạ tầng Cloud và Kubernetes, hỗ trợ doanh nghiệp xây dựng môi trường triển khai ứng dụng linh hoạt, an toàn và dễ dàng mở rộng theo nhu cầu.

#Kubernetes
#Kubernetes
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc