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>-stretchvàopenjdk:<version>-jessie
buster, jessieHoặc stretchlà 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>-oraclevàopenjdk:<version>-oraclelinux7
Bắt đầu với openjdk:12hình ảnh mặc định cũng như các biến thể -oraclevà -oraclelinux7dự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ư -oraclevà -oraclelinux7cá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 openjdkhì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 openjdkhì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 alpinehì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ư githoặ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 alpinemô 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 -headlessgó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 openjdkhì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.