Contents

เรียนรู้ Docker: 8 หัวข้อสำคัญสำหรับผู้เริ่มต้น

Mastering Docker เป็นทักษะที่เป็นที่ต้องการของวิศวกรซอฟต์แวร์แบ็กเอนด์ Docker จะช่วยคุณสร้าง จัดทำแพ็กเกจ และแจกจ่ายแอปพลิเคชัน

Docker ช่วยให้แอปพลิเคชันทำงานได้อย่างราบรื่นบนแพลตฟอร์มที่หลากหลาย ลดการหยุดชะงักในการดำเนินงานในที่สุด และช่วยให้องค์กรมีตำแหน่งที่ได้เปรียบในตลาดของตน อย่างไรก็ตาม การเริ่มต้นการเดินทางสู่ความเชี่ยวชาญใน Docker ในตอนแรกอาจดูน่ากลัว หากต้องการใช้ Docker อย่างเชี่ยวชาญ จำเป็นต้องทำความคุ้นเคยกับแนวคิดที่สำคัญบางประการ

นักเทียบท่าคืออะไร?

Docker เป็นแอปพลิเคชันซอฟต์แวร์ที่ช่วยให้ผู้ใช้สามารถห่อหุ้มโปรแกรมภายในโมดูลที่มีอยู่ในตัวเองที่เรียกว่า"คอนเทนเนอร์"เทคโนโลยีที่เป็นนวัตกรรมนี้ช่วยอำนวยความสะดวกในการพัฒนา ทดสอบ และปรับใช้แอปพลิเคชันโดยจัดทำแพลตฟอร์มที่มีประสิทธิภาพสำหรับการสร้าง ตรวจสอบ และแจกจ่ายส่วนประกอบซอฟต์แวร์

การใช้ Docker จำเป็นต้องเชื่อมต่อกับ Docker Engine ซึ่งอาจติดตั้งบนระบบปฏิบัติการที่หลากหลาย เช่น Windows 10 และ 11, macOS และ Linux ต่างๆ เช่น Ubuntu หากต้องการจ้าง Docker อย่างเชี่ยวชาญ เราจะต้องคุ้นเคยกับเครื่องมือและหลักการพิเศษมากมายที่เอื้อต่อการดำเนินงาน ต่อไปนี้เป็นรายการความสามารถพื้นฐานที่จำเป็นสำหรับผู้เริ่มต้นเพื่อเริ่มต้นการเดินทางในอาณาจักรนี้

รูปภาพนักเทียบท่า

/th/images/official-docker-images-page-on-docker-hub.jpg

อิมเมจ Docker ทำหน้าที่เป็นพิมพ์เขียวพื้นฐานที่ใช้ในการสร้างคอนเทนเนอร์ โดยรวบรวมการนำเสนอสภาพแวดล้อมการปฏิบัติงานแบบกะทัดรัด พร้อมด้วยส่วนประกอบซอฟต์แวร์ที่เกี่ยวข้องและการพึ่งพาซึ่งกันและกัน องค์ประกอบของภาพนี้ถูกกำหนดโดยใช้ชุดแนวทางที่ระบุไว้ภายใน Dockerfile ซึ่งกำหนดขั้นตอนในการสร้างภาพ

ภายในเอกสาร มีรายละเอียดรายการข้อกำหนดที่ครอบคลุม ซึ่ง Docker จะสร้างอิมเมจโดยอัตโนมัติผ่านการดำเนินการตามแนวทางที่กำหนดไว้ล่วงหน้า อิมเมจที่มีอยู่แล้วมากมายสามารถเข้าถึงได้ภายใน Docker Registry หรือที่เรียกว่า Docker Hub ซึ่งผู้ใช้สามารถเลือกและใช้สำหรับแอปพลิเคชันของตนได้ ด้วยเหตุผลที่เกี่ยวข้องกับความปลอดภัย Docker แนะนำให้ใช้รูปภาพที่ได้รับอนุญาตอย่างเป็นทางการ

คุณมีความยืดหยุ่นในการสร้างภาพตามข้อกำหนดเฉพาะที่ได้รับการปรับแต่ง รูปภาพเหล่านี้มีให้บริการในมิติ ระบบปฏิบัติการ และภาษาที่หลากหลาย ทำให้คุณสามารถเลือกตัวเลือกที่เหมาะสมที่สุดเพื่อให้ตรงตามข้อกำหนดการใช้งานของคุณ เพื่อเป็นตัวอย่าง คุณอาจสำรวจเทคนิคในการสร้างอิมเมจ Docker ที่มี.NET web API

คอนเทนเนอร์นักเทียบท่า

คอนเทนเนอร์ทำหน้าที่เป็นวิธีการห่อหุ้มแอปพลิเคชันในหน่วยที่มีในตัวเองซึ่งสามารถดำเนินการได้อย่างอิสระ ครอบคลุมองค์ประกอบที่จำเป็นทั้งหมดสำหรับการทำงานของแอปพลิเคชัน เช่น ไลบรารี ซอร์สโค้ด การขึ้นต่อกัน และสภาพแวดล้อมรันไทม์ ภายในขอบเขต

คอนเทนเนอร์จัดเตรียมกลไกสำหรับการห่อหุ้มแอปพลิเคชันซอฟต์แวร์ ช่วยให้สามารถดำเนินการได้อย่างต่อเนื่องในสภาพแวดล้อมที่หลากหลาย ด้วยการใช้คอนเทนเนอร์ เราสามารถจัดการแอปพลิเคชันได้อย่างมีประสิทธิภาพทั้งภายในบริบทการพัฒนาและการใช้งานจริง ในขณะเดียวกันก็ลดการเกิดข้อผิดพลาดให้เหลือน้อยที่สุด มีแอปพลิเคชันที่เป็นไปได้มากมายสำหรับคอนเทนเนอร์ ซึ่งให้โอกาสในการสำรวจและนำไปใช้งานอย่างเพียงพอ

คอนเทนเนอร์นักเทียบท่ามีตัวระบุ เช่น ID คอนเทนเนอร์ รูปภาพ และระบบปฏิบัติการพื้นฐาน นอกจากนี้ เราอาจสังเกตรันไทม์ เงื่อนไข และนามของคอนเทนเนอร์ด้วย เพื่อระบุคอนเทนเนอร์ทั้งหมดภายในระบบที่กำหนด ให้ใช้คำสั่งต่อไปนี้:

 docker container ls 

คุณจะได้รับข้อมูลที่ครอบคลุมเกี่ยวกับสถานะปัจจุบันของแอปพลิเคชันในคอนเทนเนอร์ทั้งหมด

/th/images/details-of-running-containers-on-docker-cli.jpg

คุณสามารถใช้คำสั่ง “docker ps” เพื่อตรวจสอบคอนเทนเนอร์ที่ใช้งานอยู่ทั้งหมด และใช้ “docker container inspect [container ID]” จะทำให้คุณสามารถตรวจสอบเนื้อหาของคอนเทนเนอร์ที่ต้องการได้

ด็อคเกอร์ไฟล์

Dockerfile ทำหน้าที่เป็นพิมพ์เขียวคำแนะนำสำหรับการสร้างอิมเมจ Docker โดยให้รายละเอียดเกี่ยวกับอิมเมจพื้นฐาน รหัสแอปพลิเคชัน และส่วนประกอบที่จำเป็นสำหรับการสร้างอิมเมจ

เอกสารดังกล่าวไม่เพียงแต่ครอบคลุมถึงตัวแปรด้านสิ่งแวดล้อมเท่านั้น แต่ยังครอบคลุมถึงแนวทางที่จำเป็นสำหรับการสร้างภาพภายในขอบเขตที่ครอบคลุมอีกด้วย อาจสร้าง Dockerfile ซึ่งคล้ายกับการสร้างไฟล์ทั่วไป จำเป็นต้องปฏิบัติตามไวยากรณ์เฉพาะเมื่อวิเคราะห์แนวทางที่กำหนดโดย Docker เพื่อให้มั่นใจว่ามีความเข้าใจที่ถูกต้อง ตัวอย่างเช่น พิจารณาภาพประกอบต่อมาซึ่งเป็นตัวอย่าง Dockerfile ทั่วไป:

/th/images/a-dockerfile-with-instructions.jpg

นักเทียบท่าเขียน

Docker Compose ทำหน้าที่เป็นเครื่องมือสำหรับการแยกและดำเนินการแอปพลิเคชัน Docker แบบหลายคอนเทนเนอร์โดยใช้ไฟล์การกำหนดค่า YAML ซึ่งระบุบริการที่จำเป็นสำหรับแอปพลิเคชันเฉพาะ ไฟล์ YAML นี้ทำหน้าที่เป็นเอกสารที่แสดงส่วนประกอบต่างๆ ที่จำเป็นในการสร้างแอปพลิเคชันที่ต้องการ ด้วยข้อมูลนี้ที่มีอยู่ เราอาจดำเนินการและเริ่มต้นบริการที่จำเป็นทั้งหมดผ่านคำสั่งเดียว ดังนั้นจึงทำให้กระบวนการตั้งค่าและจัดการแอปพลิเคชันคอนเทนเนอร์ที่ซับซ้อนมีความคล่องตัวยิ่งขึ้น

Docker Compose เป็นเครื่องมืออเนกประสงค์ที่ช่วยให้ผู้ใช้สามารถปรับใช้และจัดการแอปพลิเคชันในสภาพแวดล้อมที่แตกต่างกัน เช่น การผลิต การจัดเตรียม การพัฒนา และการทดสอบ ด้วยความสามารถในการจัดระเบียบที่เรียบง่าย Docker Compose ช่วยปรับปรุงงานที่มักจะซับซ้อนในการจัดการคอนเทนเนอร์หลายรายการ

Docker Compose มอบความสามารถในการจัดการที่ครอบคลุมสำหรับแอปพลิเคชันตลอดวงจรชีวิต ครอบคลุมการเริ่มต้น การยุติ และการสร้างบริการใหม่ นอกจากนี้ยังช่วยให้สามารถติดตามบริการที่ใช้งานอยู่ การสตรีมเอาต์พุตบันทึก และการดำเนินการคำสั่งภายในบริการเฉพาะ

Docker Compose นำเสนอโซลูชันที่สะดวกสบายสำหรับการกำหนดค่าเครือข่าย จัดการวอลุ่ม และกำหนดการขึ้นต่อกัน นอกจากนี้ยังช่วยให้สามารถปรับขนาดแอปพลิเคชันในสภาพแวดล้อมการผลิตโดยการระบุแบบจำลองของบริการที่จำเป็นเพื่อรองรับความต้องการที่เพิ่มขึ้น

Docker Compose นำเสนอแนวทางที่มีประสิทธิภาพในการปรับใช้สแต็กซอฟต์แวร์ที่ซับซ้อนในหลายแพลตฟอร์ม ขณะเดียวกันก็อำนวยความสะดวกในการสร้างการกำหนดค่าเหล่านี้บนระบบที่แตกต่างกันอย่างสม่ำเสมอ ความคุ้นเคยกับเครื่องมือนี้สามารถเพิ่มประสิทธิภาพและประสิทธิภาพของแอปพลิเคชันของคุณได้

นี่คือภาพประกอบของไฟล์การกำหนดค่า Docker Compose ซึ่งสาธิตวิธีกำหนดและประสานคอนเทนเนอร์หลายรายการภายในเอกสาร YAML เดียว:yamlversion:‘3’services:web:build:.ports:-“8080:8080"environment:-NODE_ENV=productionในตัวอย่างนี้ เราได้กำหนดบริการ 2 รายการ ได้แก่ web และ db บริการ web ระบุว่าควรสร้างจากไดเร็กทอรีปัจจุบัน (เช่น ตำแหน่งของ Dockerfile) และแมปพอร์ต 8080 บน เครื่องโฮสต์ไปที่พอร์ต 8080 ในคอนเทนเนอร์ นอกจากนี้ ยังตั้งค่าตัวแปรสภาพแวดล้อม NODE\_ENV เป็น `

/th/images/docker-compose-yaml-file-2.jpg

นักเทียบท่าฮับ

/th/images/docker-hub-signup-page.jpg

Docker Hub คือการลงทะเบียนคอนเทนเนอร์ออนไลน์สำหรับ Docker เนื่องจากเป็นคอนเทนเนอร์รีจีสทรีที่ใหญ่ที่สุด จึงเป็นเครื่องมือการทำงานร่วมกันสำหรับนักพัฒนาและผู้มีส่วนร่วมโอเพ่นซอร์ส นอกจากนี้ยังเป็นตลาดที่ยอดเยี่ยมสำหรับผู้จำหน่ายซอฟต์แวร์

Docker Hub ทำหน้าที่เป็นแพลตฟอร์มที่เชื่อถือได้สำหรับการได้รับเทคโนโลยีเวอร์ช่วลไลเซชั่นที่แข็งแกร่ง ผู้ใช้สามารถสร้างพื้นที่เก็บข้อมูลและเผยแพร่เนื้อหารูปภาพมากกว่าหนึ่งแสนรายการ

การโฮสต์แอปพลิเคชันและการเขียนโค้ดบนแพลตฟอร์มของเรานั้นเกิดขึ้นได้ พร้อมด้วยความสามารถในการทำงานร่วมกับนักพัฒนาคนอื่นๆ ผ่านโปรเจ็กต์ที่แชร์ Docker Hub นำเสนอทั้งตัวเลือกสาธารณะและที่เก็บข้อมูลส่วนตัวสำหรับกลุ่มที่ได้รับอนุญาตที่ได้รับการคัดเลือกโดยไม่มีค่าใช้จ่าย หรืออีกทางหนึ่ง เรามอบโซลูชันที่ปรับแต่งมาโดยเฉพาะสำหรับลูกค้าที่ชำระเงินซึ่งต้องการการเข้าถึงแบบทีมที่ปลอดภัย

เครือข่ายนักเทียบท่า

เครือข่ายนักเทียบท่าทำหน้าที่เป็นตัวอำนวยความสะดวกสำหรับการสื่อสารระหว่างคอนเทนเนอร์ที่ราบรื่น ช่วยให้คอนเทนเนอร์โต้ตอบทั้งภายในและภายนอกภายในสภาพแวดล้อมที่ปลอดภัยและจำกัด ความสามารถนี้ขยายไปทั่วทั้งการกำหนดค่าคอนเทนเนอร์ส่วนบุคคลและหลายโฮสต์ เพื่อให้มั่นใจถึงการเชื่อมต่อที่มีประสิทธิภาพและได้รับการควบคุมอย่างดีระหว่างกัน

การเรียกใช้คอนเทนเนอร์บนคอมพิวเตอร์ไม่อนุญาตให้เปิดเผยกับเครือข่ายภายนอกตามค่าเริ่มต้น เพื่อเปิดใช้งานการเปิดเผยดังกล่าว เราสามารถใช้พอร์ตเครือข่ายที่อำนวยความสะดวกในการเชื่อมต่อกับที่อยู่ IP ภายนอก บริการระบบชื่อโดเมน (DNS) ตารางเส้นทาง และเกตเวย์อินเทอร์เน็ต

ความสามารถด้านเครือข่ายทำให้คอนเทนเนอร์สามารถทำงานได้ภายในการตั้งค่าเครือข่ายที่จำกัด เครือข่ายเหล่านี้ให้ความรู้สึกถึงความโดดเดี่ยวโดยการให้ตัวระบุเนมสเปซที่ไม่ซ้ำกันและการจัดสรรที่อยู่ IP ซึ่งช่วยลดความขัดแย้งที่อาจเกิดขึ้นในขณะเดียวกันก็สนับสนุนความปลอดภัยของระบบโดยรวมไปพร้อมๆ กัน

วอลุ่มนักเทียบท่า

นักเทียบท่าใช้เทคนิคที่เรียกว่าวอลุ่มในการจัดการข้อมูลระยะยาว ตามค่าเริ่มต้น คอนเทนเนอร์จะมีลักษณะไม่ถาวร และสามารถเปลี่ยนหรือกำจัดทิ้งได้อย่างง่ายดายพร้อมกับเนื้อหาในคอนเทนเนอร์ อย่างไรก็ตาม สถานการณ์บางอย่างอาจจำเป็นต้องเก็บรักษาข้อมูลไว้ เมื่อเป็นกรณีนี้ เราสามารถใช้โวลุ่ม Docker เพื่อดูแลข้อมูลที่ยั่งยืนได้

Volumes มีฟังก์ชันการทำงานที่หลากหลาย นอกเหนือจากการอำนวยความสะดวกในการแบ่งปันข้อมูลระหว่างแอปพลิเคชันในคอนเทนเนอร์เท่านั้น ซึ่งรวมถึงขั้นตอนการสำรองข้อมูลและการย้ายข้อมูลที่ไม่ซับซ้อนเมื่อเปรียบเทียบกับวิธีการจัดเก็บข้อมูลทางเลือก นอกจากนี้ ผู้ใช้ยังสามารถจัดการวอลุ่มได้อย่างสะดวกผ่านทาง Docker Command Line Interface (CLI) หรือ Application Programming Interface (API)

เมื่อปรับใช้คอนเทนเนอร์โดยไม่ต้องใช้วอลลุมที่เกี่ยวข้อง Docker จะสร้างวอลลุมโดยปริยายตามค่าเริ่มต้น นอกจากนี้ ผู้ใช้ยังมีความสามารถในการสร้างและรักษาวอลลุมแยกที่แยกออกจากคอนเทนเนอร์ที่ทำงานอยู่ผ่านการใช้คำสั่งเฉพาะ หากต้องการสร้างโวลุ่มใหม่ คำสั่งถัดไปอาจถูกดำเนินการ:

 docker volume create my-vol 

หากต้องการดูฮาร์ดไดรฟ์เสมือนที่คุณสร้างขึ้น โปรดปฏิบัติตามคำแนะนำต่อไปนี้:

 docker volume ls //local my-vol 

จากนั้นคุณสามารถแนบไดรฟ์ข้อมูลเข้ากับคอนเทนเนอร์ใดก็ได้ที่คุณต้องการ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับไดรฟ์ข้อมูลได้ในเอกสารอย่างเป็นทางการของ Docker

คุณสมบัตินักเทียบท่าอื่น ๆ

Docker กลายเป็นตัวเลือกที่ได้รับการยกย่องอย่างสูงสำหรับการจัดการคอนเทนเนอร์และการรักษาการควบคุมเวอร์ชันในโครงการพัฒนาซอฟต์แวร์ ด้วยความเชี่ยวชาญในเครื่องมือที่หลากหลาย นักพัฒนาจึงสามารถเพิ่มประสิทธิภาพและประสิทธิผลผ่านกระบวนการเวิร์กโฟลว์ที่ได้รับการปรับปรุง

Docker มีฟังก์ชันการทำงานมากมายซึ่งช่วยให้ผู้ใช้สามารถจัดการแอปพลิเคชันของตนได้อย่างมีประสิทธิภาพ เมื่อบรรลุความเชี่ยวชาญในด้านพื้นฐานแล้ว เราอาจเจาะลึกความสามารถที่ซับซ้อนมากขึ้น เช่น Docker Swarm ซึ่งเป็นเครื่องมือที่ออกแบบมาเพื่อประสานงานกับระบบซอฟต์แวร์ขั้นสูง