Trong môi trường doanh nghiệp, vì lý do bảo mật, Docker thường được vận hành trong mạng nội bộ khép kín bị chặn truy cập Internet bên ngoài. Trong môi trường như vậy, để cập nhật image hoặc triển khai mới, cần phải thủ công mang file image đã được lưu từ bên ngoài bằng docker save vào và nạp bằng docker load.
Tuy nhiên, khi image có kích thước từ vài GB trở lên, chỉ cần sửa một chút cũng phải chuyển lại toàn bộ, dẫn đến sự kém hiệu quả.
Image Docker là tổ hợp của nhiều layer chỉ đọc. Các layer giống nhau được chia sẻ giữa nhiều image mà không bị lưu trùng lặp. Nhờ cấu trúc này, chỉ cần truyền các layer đã thay đổi, còn phần còn lại có thể được tái sử dụng từ cache.
Vì trong mạng khép kín rất khó thực hiện cache tự động, nên có thể dùng chiến lược đóng gói riêng chỉ các layer đã thay đổi để truyền đi. Để tự động hóa việc này, một công cụ docker-diff dựa trên Python đã được phát triển, có thể thực hiện so sánh và hợp nhất tương ứng với chế độ compare và merge.
Trong môi trường image được cập nhật thường xuyên, cập nhật theo phương thức gia tăng có thể tiết kiệm tài nguyên mạng và thời gian, đồng thời cải thiện độ tin cậy và tốc độ triển khai.
Nếu có thể, nên tự động hóa cả quá trình tạo gói gia tăng, truyền và hợp nhất để giảm sai sót và tăng độ ổn định.
3 bình luận
Không thể xây dựng private docker registry trong môi trường mạng đóng on-premises sao? Tại sao lại triển khai phức tạp như vậy?
> Nếu điều kiện hạ tầng cho phép thì việc vận hành một container registry nội bộ có lẽ là lý tưởng nhất
Có vẻ câu này nằm ở đoạn cuối nhỉ... chắc là có một câu chuyện buồn đằng sau 🫠
Có lẽ là do các ràng buộc về kiến trúc hoặc hạ tầng chăng? Ví dụ như phía khách hàng chỉ được bàn giao lượng phần cứng tối thiểu cần thiết để vận hành AI.