สํารวจ Docker
ผู้ดูแลระบบเซิร์ฟเวอร์ Windows Contoso จําเป็นต้องทําความเข้าใจ Docker คอนเทนเนอร์ Docker รันไทม์คอนเทนเนอร์ และวิธีการทํางานบน Windows Server
ภาพรวมของ Docker และรันไทม์คอนเทนเนอร์
Docker Inc. คือบริษัทที่รวบรวมรวบรวมของเครื่องมือแบบโอเพนซอร์ส โซลูชัน และบริการบนระบบคลาวด์ที่มีรูปแบบทั่วไปสําหรับบรรจุภัณฑ์ (หรือที่เรียกว่าการบรรจุ) โค้ดแอปเป็นหน่วยมาตรฐานสําหรับการพัฒนาซอฟต์แวร์ หน่วยที่ได้มาตรฐานนี้เรียกว่าคอนเทนเนอร์ Docker คือซอฟต์แวร์ที่ครอบคลุมระบบไฟล์ทั้งหมดที่จําเป็นต้องใช้: โค้ด รันไทม์ เครื่องมือระบบ ไลบรารีระบบ และสิ่งที่คุณสามารถติดตั้งบนเซิร์ฟเวอร์ได้
เพื่อรองรับคอนเทนเนอร์ Docker มีคอมโพเนนต์พื้นฐานสองอย่างที่เข้ามาเล่น ซึ่งโดยปกติแล้วจะถูกซ่อนหรือไม่ได้สังเกตโดยผู้ใช้ที่เรียกใช้คอนเทนเนอร์ สององค์ประกอบเหล่านี้คือรันไทม์คอนเทนเนอร์และคุณสมบัติ OS เพื่อรองรับคอนเทนเนอร์ บน Windows Server คุณลักษณะที่สนับสนุนคอนเทนเนอร์ Docker เรียกว่า "คอนเทนเนอร์" คุณลักษณะนี้โต้ตอบกับคอมโพเนนต์ที่เรียกว่า Host Compute Service (HCS) HCS รับผิดชอบในการจัดแนวแพลตฟอร์มการจําลองเสมือนบน Windows Server และเป็น API ที่ต่ํากว่าที่สนับสนุนทั้งคอนเทนเนอร์และ Hyper-V VM
เหนือคุณลักษณะ OS ที่กําหนดเวลาคอนเทนเนอร์เป็นรันไทม์คอนเทนเนอร์ รันไทม์คอนเทนเนอร์อยู่ระหว่าง CLI, UI หรือ orchestrator คอนเทนเนอร์และคุณลักษณะ OS พื้นฐาน เป็นงานรันไทม์คอนเทนเนอร์เพื่อแปลคําสั่งจากผู้ใช้หรือองค์กรคอนเทนเนอร์ไปยังความสามารถของแพลตฟอร์ม OS ตัวอย่างเช่น เมื่อคุณขอให้ Docker CLI เรียกใช้คอนเทนเนอร์ใหม่ CLI จะโต้ตอบกับรันไทม์คอนเทนเนอร์ ซึ่งจะส่งคําสั่งไปยังระบบปฏิบัติการในลักษณะที่เข้าใจตามลําดับ มีรันไทม์คอนเทนเนอร์อยู่ดังนั้นเลเยอร์ด้านบนไม่จําเป็นต้องทราบว่าระบบปฏิบัติการคาดหวังว่าจะได้รับคําสั่งอย่างไร จากจุดยืนของผู้ใช้ นี่เป็นสิ่งสําคัญเนื่องจากรันไทม์คอนเทนเนอร์ที่แตกต่างกันจะมีคุณลักษณะและความสามารถที่แตกต่างกัน
มีรันไทม์คอนเทนเนอร์ต่าง ๆ มากมายที่สามารถเรียกใช้คอนเทนเนอร์บน Windows Server ได้ ที่พบบ่อยที่สุดคือ:
- โครงการ Moby Moby เป็นโครงการโอเพนซอร์สที่ Docker สร้างโครงการเชิงพาณิชย์ บน Windows Server Moby เป็นโครงการที่สนับสนุนโดยชุมชนที่ใช้ dockerd เป็นรันไทม์คอนเทนเนอร์ Moby เหมาะสําหรับการทดสอบคอนเทนเนอร์บน Windows Server เมื่อติดตั้ง Moby ไม่เพียงให้รันไทม์คอนเทนเนอร์ dockerd เท่านั้น แต่ยังรวมถึง CLI เพื่อโต้ตอบกับคอนเทนเนอร์บน Windows Server ด้วย
ความระมัดระวัง
Dockerd บน Windows และ Windows Server ใช้ HCSv1 บน Linux Moby ได้เปลี่ยนไปใช้คอนเทนเนอร์เป็นรันไทม์คอนเทนเนอร์ ขณะนี้มีการทํางานเพื่อย้าย Moby ไปยังคอนเทนเนอร์บน Windows โดยใช้ประโยชน์จากอินเทอร์เฟซ HCSv2 ที่ใหม่กว่าและปรับปรุง
คอนเทนเนอร์ ContainerD คือรันไทม์คอนเทนเนอร์โอเพนซอร์สและได้รับการจัดตั้งเป็นรันไทม์คอนเทนเนอร์ที่ต้องการสําหรับสภาพแวดล้อม Kubernetes เมื่อเร็ว ๆ นี้ ContainerD สามารถใช้ในสภาพแวดล้อมการผลิต และเป็นรันไทม์คอนเทนเนอร์เริ่มต้นสําหรับ Windows Server 2022 เมื่อทํางานบนสภาพแวดล้อม Kubernetes เมื่อติดตั้ง ContainerD จะไม่มี CLI สําหรับการโต้ตอบกับคอนเทนเนอร์ CLIs โอเพนซอร์สอื่น ๆ เช่น CRICTL หรือ NerdCTL สามารถใช้ได้แทน
Mirantes Container Runtime (MCR) MCR ซึ่งรู้จักกันอย่างเป็นทางการว่า Docker Enterprise Edition (Docker EE) มีฟังก์ชันการทํางานเดียวกันกับ Docker CE บวกคุณสมบัติพิเศษที่สร้างขึ้นโดยเฉพาะสําหรับการปรับใช้องค์กร แนะนําให้ใช้ MCR เมื่อใช้ Docker Swarm เป็น orchestrator คอนเทนเนอร์ เมื่อติดตั้ง MCR ให้รันไทม์คอนเทนเนอร์และประสบการณ์ CLI เดียวกันกว่า Docker และ Moby
หมายเหตุ
คอมโพเนนต์อื่นที่เรียกว่า Docker Desktop สําหรับ Windows สามารถใช้บน Windows 10 และ 11 เพื่อการพัฒนาได้
เรียกใช้คอนเทนเนอร์บน Windows Server
ก่อนที่คุณจะเรียกใช้คอนเทนเนอร์บน Windows Server คุณต้องค้นหาว่ารันไทม์คอนเทนเนอร์ใดที่คุณต้องการใช้กับสภาพแวดล้อมของคุณ รันไทม์คอนเทนเนอร์จะกําหนดกระบวนการติดตั้งที่คุณจําเป็นต้องทําตาม สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกบน Windows Server และวิธีการติดตั้งแต่ละรายการ ดูวิธีการเตรียมโฮสต์ Windows Server ของคุณสําหรับคอนเทนเนอร์
สําคัญ
ถ้าคุณวางแผนที่จะใช้โหมดแยก Hyper-V สําหรับคอนเทนเนอร์ของคุณ คุณจะต้องติดตั้งบทบาทเซิร์ฟเวอร์ Hyper-V บนเซิร์ฟเวอร์โฮสต์ด้วย นอกจากนี้ ถ้าเซิร์ฟเวอร์โฮสต์เป็น VM เอง คุณจําเป็นต้องเปิดใช้งานการจําลองภาพเสมือนที่ซ้อนกันก่อนที่คุณจะติดตั้งบทบาท Hyper-V เนื่องจาก Windows 10 และ 11 เรียกใช้คอนเทนเนอร์ Windows ตามค่าเริ่มต้นในโหมดแยก Hyper-V เพื่อสนับสนุนโหมดค่าเริ่มต้นนี้ คุณลักษณะ Hyper-V จะต้องติดตั้งบนสภาพแวดล้อมโฮสต์ Windows 10 และ 11
ฮับ Docker
คอนเทนเนอร์ถูกสร้างขึ้นบนรูปภาพคอนเทนเนอร์ และสามารถจัดเก็บรูปภาพเหล่านี้ไว้ในที่เก็บได้ ที่เก็บทําหน้าที่เป็นตําแหน่งที่ตั้งที่คุณสามารถสร้าง จัดเก็บ รักษาความปลอดภัย และแชร์รูปภาพคอนเทนเนอร์ได้ Docker Hub เป็นบริการไลบรารีออนไลน์บนเว็บซึ่งจัดการโดย Docker ซึ่งคุณสามารถ:
ลงทะเบียน จัดเก็บ และจัดการรูปภาพ Docker ของคุณเองในที่เก็บออนไลน์ จากนั้นแชร์รูปภาพเหล่านั้นกับผู้อื่น
เข้าถึงรูปภาพคอนเทนเนอร์มากกว่า 100,000 รายการจากผู้จําหน่ายซอฟต์แวร์ โครงการโอเพนซอร์ส และสมาชิกอื่น ๆ ในชุมชน
รีจิสทรีคอนเทนเนอร์ของ Microsoft
Microsoft มีคอนเทนเนอร์อิมเมจผ่าน Microsoft Container Registry (MCR) ที่ mcr.microsoft.com นี่คือแหล่งข้อมูลอย่างเป็นทางการของคอนเทนเนอร์รูปภาพที่ Microsoft ให้มา โดยไม่คํานึงถึงตําแหน่งที่พบรูปภาพคอนเทนเนอร์ของ Microsoft แหล่งดึงจะถูก mcr.microsoft.com
หมายเหตุ
Azure Container Registry เป็นบริการของ Azure ที่คุณสามารถใช้เพื่อสร้างที่เก็บรูปภาพคอนเทนเนอร์ของคุณเองได้ คุณสามารถใช้ที่เก็บนี้เพื่อจัดเก็บและจัดการรูปภาพสําหรับการปรับใช้คอนเทนเนอร์ทุกประเภท