Trên mỗi tài liệu của thư viện docker (trích dẫn và liên kết bên dưới), đây là bản tóm tắt:
Hình ảnh defacto. Sử dụng nó nếu không chắc chắn.
openjdk:<version>-buster
, openjdk:<version>-stretch
vàopenjdk:<version>-jessie
buster
, jessie
Hoặc stretch
là tên mã bộ cho các phiên bản của Debian và chỉ ra phát hành hình ảnh được dựa trên.
Tương tự, hình ảnh này dựa trên Alpine Linux , do đó là một hình ảnh cơ sở rất nhỏ. Khuyến nghị nếu bạn cần kích thước hình ảnh càng nhỏ càng tốt. Lưu ý là nó sử dụng một số lib bất thường, nhưng không phải là vấn đề đối với hầu hết các phần mềm. Nếu nghi ngờ, hãy kiểm tra các tài liệu chính thức bên dưới.
openjdk:<version>
(từ 12 trở đi), openjdk:<version>-oracle
vàopenjdk:<version>-oraclelinux7
Bắt đầu với openjdk:12
hình ảnh mặc định cũng như các biến thể -oracle
và -oraclelinux7
dựa trên hình ảnh chính thức của Oracle Linux 7 . Các tệp nhị phân OpenJDK trong hình ảnh mặc định cũng như -oracle
và -oraclelinux7
các biến thể được tạo bởi Oracle và được lấy từ cộng đồng OpenJDK .
Hình ảnh này chỉ chứa các gói tối thiểu cần thiết để chạy Java (ví dụ như thiếu nhiều thư viện Java liên quan đến giao diện người dùng). Trừ khi bạn đang làm việc trong một môi trường mà chỉ các openjdk
hình ảnh sẽ được triển khai và bạn phải hạn chế không gian, hình ảnh mặc định được khuyến khích hơn thế này.
openjdk:<version>-windowsservercore
Hình ảnh này dựa trên Windows Server Core ( microsoft/windowsservercore
) .
Toàn bộ tài liệu ( phiên bản hiển thị bên dưới tại đây , phiên bản mới nhất tại đây ):
Các biến thể hình ảnh
Các openjdk
hình ảnh có nhiều hương vị, mỗi loại được thiết kế cho một trường hợp sử dụng cụ thể.
openjdk:<version>
Đây là hình ảnh defacto. Nếu bạn không chắc chắn về nhu cầu của mình, bạn có thể muốn sử dụng cái này. Nó được thiết kế để vừa được sử dụng như một vùng chứa bỏ đi (gắn mã nguồn của bạn và khởi động vùng chứa để khởi động ứng dụng của bạn), vừa là cơ sở để xây dựng các hình ảnh khác.
Một số thẻ này có thể có tên như jessie hoặc kéo dài trong chúng. Đây là các tên mã bộ cho các bản phát hành
Debian và cho biết bản phát hành hình ảnh được dựa trên.
openjdk:<version>-alpine
Hình ảnh này được dựa trên phổ biến dự án Alpine Linux , có sẵn trong các alpine
hình ảnh chính thức . Alpine Linux nhỏ hơn nhiều so với hầu hết các hình ảnh cơ sở phân phối (~ 5MB), và do đó dẫn đến hình ảnh nhìn chung mỏng hơn nhiều.
Biến thể này được khuyên dùng khi kích thước hình ảnh cuối cùng càng nhỏ càng tốt. Cảnh báo chính cần lưu ý là nó sử dụng musl libc thay vì glibc và các bạn , vì vậy một số phần mềm nhất định có thể gặp sự cố tùy thuộc vào độ sâu của yêu cầu libc của họ. Tuy nhiên, hầu hết phần mềm không có vấn đề với điều này, vì vậy biến thể này thường là một lựa chọn rất an toàn. Xem chuỗi bình luận của Hacker News này để thảo luận thêm về các vấn đề có thể phát sinh và một số so sánh chuyên nghiệp về việc sử dụng hình ảnh dựa trên Alpine.
Để giảm thiểu kích thước hình ảnh, việc các công cụ liên quan bổ sung (chẳng hạn như git
hoặc bash
) được đưa vào hình ảnh dựa trên Alpine là điều không bình thường . Sử dụng hình ảnh này làm cơ sở, thêm những thứ bạn cần vào Dockerfile của riêng bạn (xem alpine
mô tả hình ảnh để biết ví dụ về cách cài đặt các gói nếu bạn không quen).
openjdk:<version>-windowsservercore
Hình ảnh này dựa trên Windows Server Core ( microsoft/windowsservercore
) . Do đó, nó chỉ hoạt động ở những nơi mà hình ảnh đó hoạt động, chẳng hạn như Windows 10 Professional / Enterprise (Anniversary Edition) hoặc Windows Server 2016.
Để biết thông tin về cách chạy Docker trên Windows, vui lòng xem hướng dẫn "Bắt đầu nhanh" có liên quan do Microsoft cung cấp:
openjdk:<version>-slim
Hình ảnh này cài đặt -headless
gói OpenJDK và do đó, thiếu nhiều thư viện Java liên quan đến giao diện người dùng và một số gói phổ biến có trong thẻ mặc định. Nó chỉ chứa các gói tối thiểu cần thiết để chạy Java. Trừ khi bạn đang làm việc trong một môi trường mà
chỉ các openjdk
hình ảnh sẽ được triển khai và bạn phải hạn chế không gian, chúng tôi khuyên bạn nên sử dụng hình ảnh mặc định của kho lưu trữ này.