ตามเอกสารห้องสมุดนักเทียบท่า (คำพูดและลิงค์ด้านล่าง) นี่คือบทสรุป:
ภาพ defacto ใช้มันหากไม่แน่ใจ
openjdk:<version>-buster
, openjdk:<version>-stretch
และopenjdk:<version>-jessie
buster
, jessie
หรือstretch
มีชื่อรหัสชุดสำหรับรุ่นของDebianและระบุปล่อยภาพที่อยู่บนพื้นฐานของ
ในทำนองเดียวกันภาพนี้ใช้Alpine Linuxดังนั้นจึงเป็นภาพพื้นฐานที่มีขนาดเล็กมาก ขอแนะนำหากคุณต้องการขนาดภาพที่เล็กที่สุด ข้อแม้คือมันใช้ libs ที่ผิดปกติ แต่ไม่น่าจะเป็นปัญหาสำหรับซอฟต์แวร์ส่วนใหญ่ หากมีข้อสงสัยโปรดตรวจสอบเอกสารอย่างเป็นทางการด้านล่าง
openjdk:<version>
(ตั้งแต่วันที่ 12 เป็นต้นไป) openjdk:<version>-oracle
และopenjdk:<version>-oraclelinux7
เริ่มต้นด้วยopenjdk:12
ภาพเริ่มต้นเช่นเดียวกับ-oracle
และ-oraclelinux7
สายพันธุ์ที่อยู่บนพื้นฐานของอย่างเป็นทางการของ Oracle Linux 7 ภาพ ไบนารี OpenJDK ในภาพเริ่มต้นเช่นเดียวกับ-oracle
และ-oraclelinux7
สายพันธุ์ที่ถูกสร้างขึ้นโดย Oracle และมีที่มาจากชุมชน OpenJDK
อิมเมจนี้มีเฉพาะแพ็กเกจขั้นต่ำที่จำเป็นในการรัน Java (และไม่มีไลบรารี Java ที่เกี่ยวข้องกับ UI จำนวนมากเป็นต้น) จนกว่าคุณจะได้ทำงานในสภาพแวดล้อมที่ซึ่งเพียงopenjdk
ภาพจะถูกนำไปใช้และคุณมีข้อ จำกัด ของพื้นที่, ภาพเริ่มต้นขอแนะนำมากกว่านี้
openjdk:<version>-windowsservercore
ภาพนี้จะขึ้นอยู่กับWindows Server หลัก (microsoft/windowsservercore
)
เอกสารฉบับเต็ม ( รุ่นที่แสดงด้านล่างนี่ , รุ่นล่าสุดที่นี่ ):
รูปแบบรูปภาพ
openjdk
ภาพมาในรสชาติจำนวนมากในแต่ละที่ออกแบบมาสำหรับกรณีการใช้งานที่เฉพาะเจาะจง
openjdk:<version>
นี่คือภาพ defacto หากคุณไม่แน่ใจว่าความต้องการของคุณคืออะไรคุณอาจต้องการใช้สิ่งนี้ ได้รับการออกแบบมาเพื่อใช้เป็นคอนเทนเนอร์แบบทิ้ง (ติดตั้งซอร์สโค้ดของคุณและเริ่มคอนเทนเนอร์เพื่อเริ่มแอปของคุณ) รวมถึงฐานในการสร้างรูปภาพอื่น ๆ
แท็กเหล่านี้บางแท็กอาจมีชื่อเหมือนเจสซี่หรือยืด นี่คือชื่อรหัสชุดสำหรับการเผยแพร่
Debianและระบุว่าอิมเมจรุ่นใดใช้
openjdk:<version>-alpine
ภาพนี้จะขึ้นอยู่กับความนิยมของโครงการลินุกซ์อัลไพน์ที่มีอยู่ในภาพอย่างเป็นทางการ Alpine Linux มีขนาดเล็กกว่าอิมเมจฐานการกระจายส่วนใหญ่มาก (~ 5MB) ดังนั้นจึงนำไปสู่ภาพที่บางกว่าโดยทั่วไปalpine
ขอแนะนำให้ใช้ตัวแปรนี้เมื่อต้องการให้ขนาดภาพสุดท้ายเล็กที่สุด ข้อแม้หลักที่ควรทราบคือมันใช้musl libcแทนglibc และเพื่อนดังนั้นซอฟต์แวร์บางตัวอาจพบปัญหาขึ้นอยู่กับความลึกของข้อกำหนด libc อย่างไรก็ตามซอฟต์แวร์ส่วนใหญ่ไม่มีปัญหากับสิ่งนี้ดังนั้นตัวแปรนี้จึงเป็นตัวเลือกที่ปลอดภัยมาก ดูหัวข้อความคิดเห็นของ Hacker Newsสำหรับการสนทนาเพิ่มเติมเกี่ยวกับปัญหาที่อาจเกิดขึ้นและการเปรียบเทียบเชิงโปร / การเปรียบเทียบกับการใช้รูปภาพจาก Alpine
ในการย่อขนาดรูปภาพจึงเป็นเรื่องปกติที่เครื่องมือที่เกี่ยวข้องเพิ่มเติม (เช่นgit
หรือbash
) จะรวมอยู่ในรูปภาพที่ใช้อัลไพน์ ใช้ภาพนี้เป็นฐานเพิ่มสิ่งที่คุณต้องการใน Dockerfile ของคุณเอง (ดูalpine
คำอธิบายภาพสำหรับตัวอย่างวิธีการติดตั้งแพ็คเกจหากคุณไม่คุ้นเคย)
openjdk:<version>-windowsservercore
ภาพนี้จะขึ้นอยู่กับWindows Server หลัก (microsoft/windowsservercore
) ด้วยเหตุนี้จึงใช้งานได้เฉพาะในสถานที่ที่มีอิมเมจเช่น Windows 10 Professional / Enterprise (Anniversary Edition) หรือ Windows Server 2016
สำหรับข้อมูลเกี่ยวกับวิธีทำให้ Docker ทำงานบน Windows โปรดดูคู่มือ "Quick Start" ที่เกี่ยวข้องซึ่งจัดทำโดย Microsoft:
openjdk:<version>-slim
อิมเมจนี้ติดตั้ง-headless
แพ็กเกจของ OpenJDK ดังนั้นจึงไม่มีไลบรารี Java ที่เกี่ยวข้องกับ UI จำนวนมากและแพ็กเกจทั่วไปบางส่วนที่มีอยู่ในแท็กดีฟอลต์ ประกอบด้วยแพ็คเกจขั้นต่ำที่จำเป็นในการรัน Java เท่านั้น จนกว่าคุณจะได้ทำงานในสภาพแวดล้อมที่ซึ่ง
เพียงopenjdk
ภาพจะถูกนำไปใช้และคุณมีพื้นที่ จำกัด เราขอแนะนำให้ใช้ภาพเริ่มต้นของพื้นที่เก็บข้อมูลนี้