Docker ได้นำอุตสาหกรรมวิศวกรรมซอฟต์แวร์มาสู่วงการ และไม่เพียงปฏิวัติวิธีที่เราจัดส่งและปรับใช้ซอฟต์แวร์เท่านั้น แต่ยังเปลี่ยนวิธีที่วิศวกรตั้งค่าสภาพแวดล้อมการพัฒนาซอฟต์แวร์ในคอมพิวเตอร์อีกด้วย
คู่มือนี้จะแสดงวิธีเริ่มต้นใช้งาน Docker โดยติดตั้งบน Ubuntu Linux 20.04 (Focal Fossa) ซึ่งเป็น Ubuntu เวอร์ชันล่าสุดสำหรับการสนับสนุนระยะยาว (LTS) ในขณะที่เขียนบทความนี้
ข้อดีของ Docker
Docker เป็นแพลตฟอร์มโอเพ่นซอร์สที่ให้คุณทำให้แอปพลิเคชันเป็นแบบอัตโนมัติและปรับใช้เป็นแพ็คเกจแบบสแตนด์อโลนที่เรียกว่าคอนเทนเนอร์ Docker ใช้เทคโนโลยีเวอร์ชวลไลเซชันของระบบปฏิบัติการ แต่ต่างจากเครื่องเสมือน เนื่องจากใช้ทรัพยากรระบบน้อยกว่ามาก
ข้อดีหลักๆ บางประการของ Docker ได้แก่:
- ค่อนข้างใช้งานง่ายและเรียนรู้
- ให้วิธีการปรับใช้ซอฟต์แวร์ที่สม่ำเสมอและง่ายดาย
- เข้ากันได้กับสถาปัตยกรรมไมโครเซอร์วิส
- ใช้ทรัพยากรน้อยมาก
การตั้งค่าที่เก็บซอฟต์แวร์ Docker
มีหลายวิธีในการติดตั้ง Docker และคู่มือนี้จะแสดงวิธีการติดตั้ง Docker จากที่เก็บ Docker โดยใช้ยูทิลิตี้คำสั่ง apt การติดตั้ง Docker ในลักษณะนี้ทำให้คุณสามารถอัพเกรดแพ็คเกจ Docker ได้อย่างง่ายดายในอนาคต และยังเป็นวิธีที่ทีม Docker แนะนำอีกด้วย
ขั้นตอนแรกในการติดตั้งคือการเพิ่มที่เก็บซอฟต์แวร์ Docker ลงในรายการแหล่งซอฟต์แวร์ของคุณ คุณจะใช้ที่เก็บซอฟต์แวร์ Docker ผ่าน HTTPS จากนั้นจึงติดตั้งซอฟต์แวร์ที่จำเป็นโดยใช้คำสั่งด้านล่าง
ตามแนวทางปฏิบัติที่ดี ก่อนอื่นให้อัปเดตรายการแพ็คเกจซอฟต์แวร์ที่มี
sudo apt update
จากนั้น ดาวน์โหลดการพึ่งพาที่จำเป็นสำหรับการติดตั้งโดยใช้ apt install .
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
ซอฟต์แวร์ Docker ใช้ GnuPG หรือที่เรียกว่า GPG เพื่อความปลอดภัยในการสื่อสารเมื่อดาวน์โหลดแพ็คเกจซอฟต์แวร์จากที่เก็บ GPG เป็นมาตรฐานการใช้งานของ PGP (Pretty Good Privacy) ที่ใช้สำหรับเข้ารหัสข้อความหรือข้อมูล
หากต้องการเพิ่มคีย์ Docker GPG อย่างเป็นทางการให้กับคีย์ริงในเครื่องของคุณ ให้ใช้คำสั่งต่อไปนี้
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Docker มีซอฟต์แวร์หลักสามเวอร์ชันในคลังซอฟต์แวร์ ได้แก่ เวอร์ชันเสถียร เวอร์ชันทดสอบ และเวอร์ชันเผยแพร่ทุกคืน คู่มือนี้จะกล่าวถึง Docker เวอร์ชันเสถียร
เรียกใช้คำสั่งต่อไปนี้เพื่อใช้ Docker เวอร์ชันที่เก็บที่เสถียร
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
หมายเหตุ :คำสั่งดังกล่าวถือว่าคุณกำลังใช้สถาปัตยกรรม AMD หากคุณบังเอิญใช้สถาปัตยกรรม ARM คุณสามารถแทนที่คำว่า arch=amd64 ในคำสั่งด้านบนด้วย arch=arm64 หรือ arch=armhf หากคุณกำลังใช้อาร์มฮาร์ดโฟลต
การติดตั้ง Docker Engine
เมื่อคุณมีการตั้งค่าพื้นที่เก็บข้อมูลซอฟต์แวร์ Docker แล้ว คุณสามารถดำเนินการติดตั้ง Docker Engine ซึ่งเป็นแกนหลักของการจัดการและใช้งานคอนเทนเนอร์ Docker ส่วนประกอบสำคัญอื่นๆ ที่ประกอบเป็น Docker Engine ได้แก่ Docker Client, containerd, runc และ Docker daemon
ตรวจสอบให้แน่ใจว่าได้อัปเดตแหล่งที่มาของแพ็คเกจโดยใช้คำสั่งด้านล่าง เนื่องจากคุณเพิ่งเพิ่มที่เก็บ Docker ในรายการแหล่งซอฟต์แวร์ของคุณ
sudo apt update
ในการติดตั้ง Docker Engine ให้รันคำสั่งต่อไปนี้ คำสั่งจะติดตั้ง Docker Engine เวอร์ชันล่าสุดที่เสถียรตามค่าเริ่มต้น
sudo apt-get install docker-ce docker-ce-cli containerd.io
หากคุณต้องการติดตั้ง Docker เวอร์ชันใดเวอร์ชันหนึ่ง คุณสามารถตรวจสอบรายการเวอร์ชันที่ใช้งานได้ก่อนโดยใช้คำสั่งด้านล่าง
apt-cache madison docker-ce
จากนั้นคุณสามารถติดตั้ง Docker เวอร์ชันเฉพาะได้โดยใช้คำสั่งต่อไปนี้ ตัวอย่างเช่น ในการติดตั้ง 5:20.10.6~3-0~ubuntu-focal :
sudo apt-get install docker-ce=5:20.10.6~3-0~ubuntu-focal docker-ce-cli=5:20.10.6~3-0~ubuntu-focal containerd.io
กำลังยืนยันการติดตั้ง
หากต้องการตรวจสอบว่าติดตั้ง Docker สำเร็จหรือไม่ คุณสามารถเรียกใช้คำสั่งต่อไปนี้และจะส่งออกหมายเลขเวอร์ชันของ Docker Engine ที่ติดตั้ง
docker -v
ใน Ubuntu Linux และ distros ที่ใช้ Debian ส่วนใหญ่ บริการ Docker จะเริ่มทำงานโดยอัตโนมัติเมื่อระบบของคุณบูท
คุณสามารถลองเรียกใช้ สวัสดีชาวโลก อิมเมจ Docker เพื่อทดสอบการติดตั้ง เนื่องจากอิมเมจไม่พร้อมใช้งานในคอมพิวเตอร์ของคุณ ระบบจะดาวน์โหลดจาก Docker Hub ซึ่งเป็นไลบรารีของอิมเมจคอนเทนเนอร์ ครั้งต่อไปที่คุณเรียกใช้รูปภาพอีกครั้ง จะใช้สำเนาในเครื่องที่อยู่ในพีซีของคุณ
sudo docker run hello-world
การเรียกใช้ Docker ในฐานะผู้ใช้ที่ไม่ใช่รูท
ในขณะนี้ คุณสามารถเรียกใช้คอนเทนเนอร์ Docker ได้เฉพาะในฐานะ superuser นั่นคือเหตุผลที่ sudo ใช้ในคำสั่งด้านบน Docker daemon เชื่อมโยงกับซ็อกเก็ต Unix ซึ่งโดยค่าเริ่มต้นเป็นเจ้าของโดยผู้ใช้ root และผู้ใช้ที่ไม่ใช่ root สามารถเข้าถึงได้ผ่าน sudo เท่านั้น
เพื่อให้สามารถเรียกใช้คอนเทนเนอร์ Docker และคำสั่งสำคัญอื่นๆ ได้โดยไม่ต้องเป็น superuser คุณต้องสร้างกลุ่มผู้ใช้ที่ชื่อ docker ก่อน แล้วเพิ่มผู้ใช้ของคุณไปยังกลุ่มนักเทียบท่าบนเครื่องของคุณ เพิ่มกลุ่ม คำสั่งมีหน้าที่จัดการกลุ่มผู้ใช้ใน Linux
sudo groupadd docker
sudo usermod -aG docker $USER
ใช้คำสั่งด้านล่างเพื่อเปิดใช้งานการเปลี่ยนแปลงกลุ่ม
newgrp docker
หมายเหตุ :อย่าลืมออกจากระบบและกลับเข้ามาใหม่อีกครั้งเพื่อให้ระบบรู้จักการเป็นสมาชิกกลุ่มที่สร้างขึ้นใหม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อออกจากระบบ
gnome-session-quit
ในบางกรณี อาจจำเป็นต้องรีสตาร์ทเครื่องหากคุณยังไม่สามารถดำเนินการคำสั่ง Docker ในฐานะผู้ใช้ที่ไม่ใช่รูทได้
กำลังถอนการติดตั้ง Docker
หากต้องการลบหรือถอนการติดตั้ง Docker Engine จาก Ubuntu Linux เพียงเรียกใช้คำสั่งต่อไปนี้
sudo apt remove docker docker-engine docker.io containerd runc
แม้ว่า Docker Engine จะถูกลบออก แต่ไฟล์อื่นๆ ที่เกี่ยวข้องกับ Docker เช่น รูปภาพ คอนเทนเนอร์ โวลุ่ม หรือไฟล์การกำหนดค่าที่กำหนดเองจะไม่ถูกลบโดยอัตโนมัติ คุณสามารถลบไฟล์เหล่านี้ได้โดยใช้ยูทิลิตี้ rm
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
นักเทียบท่าในการฝึก
คู่มือนี้จะแสดงวิธีการติดตั้งและกำหนดค่า Docker บน Ubuntu Linux นอกจากนี้ยังแสดงวิธีเรียกใช้อิมเมจ Docker แบบง่ายที่ดึงมาจาก Docker Hub
Docker เป็นเครื่องมืออเนกประสงค์และมีกรณีการใช้งานมากมายในด้านวิศวกรรมซอฟต์แวร์ หากคุณเป็นวิศวกรซอฟต์แวร์หรือทำงานใน DevOps Docker จะช่วยลดความซับซ้อนในการปรับใช้ซอฟต์แวร์ในสภาพแวดล้อมต่างๆ และมีประโยชน์สำหรับการทดสอบและสร้างซอฟต์แวร์ต้นแบบ