Khi triển khai các ứng dụng lên các máy chủ, thường có sự tách biệt giữa những gì ứng dụng đi kèm với chính nó và những gì nó mong đợi từ nền tảng (hệ điều hành và các gói đã cài đặt) để cung cấp. Một điểm của điều này là nền tảng có thể được cập nhật độc lập với ứng dụng. Điều này hữu ích, ví dụ khi các cập nhật bảo mật cần được áp dụng khẩn cấp cho các gói được cung cấp bởi nền tảng mà không cần xây dựng lại toàn bộ ứng dụng.
Các cập nhật bảo mật truyền thống đã được áp dụng đơn giản bằng cách thực hiện lệnh quản lý gói để cài đặt các phiên bản cập nhật của gói trên hệ điều hành (ví dụ: "cập nhật yum" trên RHEL). Nhưng với sự ra đời của công nghệ container như Docker trong đó hình ảnh container về cơ bản gói cả ứng dụng và nền tảng, cách thức chính tắc để giữ một hệ thống với các container được cập nhật là gì? Cả máy chủ và bộ chứa đều có các gói riêng, độc lập, cần cập nhật và cập nhật trên máy chủ sẽ không cập nhật bất kỳ gói nào bên trong các thùng chứa. Với việc phát hành RHEL 7 trong đó các container Docker được đặc biệt chú ý, sẽ rất thú vị khi nghe cách khuyến nghị của Redhat để xử lý các cập nhật bảo mật của các container.
Suy nghĩ về một vài lựa chọn:
- Để các gói cập nhật trình quản lý gói trên máy chủ sẽ không cập nhật các gói bên trong các thùng chứa.
- Phải tạo lại tất cả các hình ảnh chứa để áp dụng các bản cập nhật dường như phá vỡ sự tách biệt giữa ứng dụng và nền tảng (cập nhật nền tảng yêu cầu quyền truy cập vào quá trình xây dựng ứng dụng tạo ra hình ảnh Docker).
- Chạy các lệnh thủ công bên trong mỗi container đang chạy có vẻ cồng kềnh và các thay đổi có nguy cơ bị ghi đè trong lần chứa tiếp theo được cập nhật từ các tạo phẩm phát hành ứng dụng.
Vì vậy, không có cách tiếp cận nào có vẻ thỏa đáng.
docker pull debian/jessie
để cập nhật hình ảnh, sau đó xây dựng lại (các) hình ảnh hiện có của tôi, sau đó dừng các bộ chứa và chạy lại chúng ( với hình ảnh mới). Các hình ảnh tôi xây dựng có cùng tên với các hình ảnh trước đó, vì vậy việc bắt đầu được thực hiện thông qua kịch bản. Sau đó tôi xóa hình ảnh "không tên". Tôi chắc chắn sẽ đánh giá cao một quy trình làm việc tốt hơn.