Docker Engine 29: Containerd Trở Thành Mặc Định, Hỗ Trợ nftables Thử Nghiệm
Docker Engine 29 đặt containerd làm kho hình ảnh mặc định và giới thiệu hỗ trợ thử nghiệm cho nftables trong mạng Linux hiện đại.
Docker, một nền tảng mã nguồn mở hàng đầu để phát triển, triển khai và chạy ứng dụng trong các container, đã chính thức phát hành Docker Engine 29, với trọng tâm là hiện đại hóa và phù hợp với hệ sinh thái container rộng lớn hơn.
Thay đổi đáng kể nhất là kho hình ảnh containerd hiện nay được sử dụng làm mặc định cho tất cả các cài đặt mới. Sự chuyển đổi này thay thế backend graph driver cũ của Docker để quản lý các lớp hình ảnh. Thực ra, điều này cũng không có gì đáng ngạc nhiên.
Containerd từ lâu đã là trung tâm của lớp runtime của Docker, nhưng cho đến nay, Docker vẫn tiếp tục dựa vào hệ thống lưu trữ riêng của mình để quản lý hình ảnh. Việc áp dụng kho hình ảnh containerd đơn giản hóa kiến trúc của Docker bằng cách hợp nhất việc thực thi và lưu trữ, giảm sự trùng lặp, và điều chỉnh Docker Engine phù hợp với các nền tảng như Kubernetes, vốn đã dựa vào containerd.
Đối với người dùng, thay đổi này mang lại các lợi ích sau:
- Thiết kế đơn giản hóa: Docker Engine hiện sử dụng containerd cho cả thời gian chạy và lưu trữ.
- Cải thiện khả năng tương tác: Phù hợp với các công cụ và quy trình làm việc dựa trên containerd.
- Đổi mới trong tương lai: Cho phép các tính năng mới như tối ưu hóa snapshotter, kéo chậm (lazy pulling) và phân phối hình ảnh ngang hàng (peer-to-peer).
Các cài đặt hiện tại sẽ tiếp tục sử dụng cấu hình hiện tại, nhưng người dùng mới và các cài đặt mới sẽ tự động sử dụng kho hình ảnh containerd.
Một bổ sung đáng chú ý khác là hỗ trợ thử nghiệm cho nftables. Cho đến nay, Docker Engine vẫn dựa vào iptables và ip6tables truyền thống để quản lý các quy tắc mạng bridge và overlay. Tuy nhiên, với việc các bản phân phối Linux dần loại bỏ iptables, Docker đang hướng tới một framework tường lửa hiện đại và hiệu quả hơn.
Khi được kích hoạt, Docker Engine phiên bản 29 giờ đây có thể tạo quy tắc nftables trực tiếp thay vì phụ thuộc vào việc chuyển đổi thông qua iptables-nft. Người dùng có thể thử nghiệm nftables bằng cách khởi động Docker với:
dockerd --firewall-backend=nftablesHãy nhớ rằng tính năng này vẫn đang trong giai đoạn thử nghiệm và chưa được khuyến nghị sử dụng trong môi trường sản xuất. Hỗ trợ Docker Swarm và các tối ưu hóa nftables hơn nữa dự kiến sẽ được triển khai trong các phiên bản sắp tới.
Ở bên dưới, dự án Moby của Docker—lõi mã nguồn mở đứng sau Docker Engine—đã chuyển sang sử dụng các module Go, thay thế hệ thống quản lý phụ thuộc cũ của nó.
Cùng lúc đó, với Docker Engine phiên bản v29, phiên bản API tối thiểu được hỗ trợ đã được nâng lên 1.44, tương ứng với Moby v25. Điều này có nghĩa là các client Docker cũ hơn (v25 trở xuống) sẽ không còn có thể giao tiếp với Docker Engine mới nhất theo mặc định.
Ngoài ra, ngoài những thay đổi đã đề cập ở trên, phiên bản mới còn bao gồm rất nhiều sửa lỗi và cải tiến. Để biết chi tiết, hãy xem nhật ký thay đổi đầy đủ hoặc ghi chú phát hành của phiên bản này. Thông báo chính thức được đăng trên Blog của Docker.
Người dùng Linux chạy Docker có thể cập nhật lên phiên bản 29 thông qua các kho phần mềm của bản phân phối. Người dùng Docker Desktop sẽ nhận được các thay đổi này tự động trong các bản cập nhật sắp tới của Docker Desktop.
