Liên quan đến hình ảnh Docker Alpine - xèng

/imgposts/0nmnpodq.jpg

Từ "Alpine" thực sự rất khó nhớ, mỗi lần tôi đều không thể ghi nhớ nó dễ dàng. Từ "Alpine" riêng lẻ có thể được dịch là “thuộc vùng núi cao; thuộc dãy núi Alps; của cư dân vùng Alps” và cũng có thể chỉ đơn giản là "dãy núi Alps" hoặc "núi cao". Trên trang chủ của họ thực sự có một bức ảnh tuyết phủ trên đỉnh núi, nhưng liệu đó có phải là dãy núi Alps hay không thì tôi cũng chưa chắc chắn. Cách phát âm của từ này là "阿尔派恩" (Al-pai-en) 😊

> docker.exe images
THƯ VIỆN                     THẺ    ID HÌNH ẢNH    ĐƯỢC TẠO   KÍCH THƯỚC
test                       latest  b25393d9067c  4 giờ trước  26,8MB
m.daocloud.io/docker.io/alpine     3.20.3   91ef0af61f39  3 tuần trước  7,8MB
m.daocloud.io/docker.io/php        8.2-fpm  9b2142f48ee3  2 tháng trước  494MB
m.daocloud.io/docker.io/mysql      8.0     23b013c7c67d [b29 club](/blog/wechat-articles-release-but-not-pus/)   2 tháng trước  572MB
nginx                    latest    a72860cb95fd  3 tháng trước  188MB

Chúng ta có thể thấy rằng:

  • Hình ảnh Alpine chỉ chiếm 7,8MB.
  • Một chương trình Go được đóng gói vào Alpine, tổng kích thước hình ảnh chỉ là 26,8MB, trong khi bản thân chương trình Go khoảng 18/19MB.

Alpine Linux được xây dựng dựa trên musl libc và busybox. Điều này làm cho nó nhỏ gọn và cực kỳ hiệu quả về tài nguyên. Một container chỉ cần không quá 8MB và cài đặt tối thiểu lên đĩa chỉ cần khoảng 130MB dung lượng lưu trữ. Không chỉ bạn nhận được một môi trường Linux đầy đủ chức năng mà còn có một loạt các gói phần mềm từ kho lưu trữ.

Hiện tại phiên bản mới nhất là 3.20.3.

Tôi cảm thấy rằng khi thiết lập Dockerfile hoặc file docker-compose, việc chỉ định phiên bản cụ thể của hình ảnh là cách tiếp cận hợp lý hơn. Việc sử dụng thẻ "latest" để chỉ định phiên bản mới nhất có thể mang lại rủi ro vì bạn sẽ không biết liệu có thay đổi nào lớn xảy ra hay không.