Installation
Docker เป็นแอปพลิเคชันที่ช่วยลดความซับซ้อนในการจัดการกระบวนการทำงานของแอปพลิเคชันด้วยเทคโนโลยี Container
Container ช่วยให้สามารถรันแอปพลิเคชันในรูปแบบของกระบวนการที่ถูกแยกทรัพยากรออกจากกันอย่างชัดเจน
แม้แนวคิดจะมีความคล้ายคลึงกับ Virtual Machine แต่ Container มีความสามารถในการพกพาสูงกว่า ใช้ทรัพยากรน้อยกว่า
และทำงานโดยอาศัยระบบปฏิบัติการของเครื่องที่ใช้งาน Docker (Host Operating System)
Note
เอกสารฉบับนี้อธิบายขั้นตอนการติดตั้งและใช้งาน Docker Community Edition (Docker CE)
บนระบบปฏิบัติการ Ubuntu โดยครอบคลุมตั้งแต่การติดตั้ง Docker Engine
การทำงานกับ Container และ Image รวมถึงการ Push Image ไปยัง Docker Repository
สำหรับระบบปฏิบัติการ Ubuntu 22.04 LTS สามารถประยุกต์ใช้ขั้นตอนในเอกสารนี้ได้โดยตรง เนื่องจากเป็นเวอร์ชันที่รองรับ Docker อย่างเป็นทางการ
Prerequisites
ก่อนดำเนินการติดตั้ง Docker ควรมีการเตรียมความพร้อมดังต่อไปนี้
-
เครื่องเซิร์ฟเวอร์ที่ติดตั้งระบบปฏิบัติการ Ubuntu และผ่านการตั้งค่าพื้นฐานเรียบร้อยแล้ว เช่น การสร้างผู้ใช้ที่ไม่ใช่ root และสามารถใช้งานคำสั่ง
sudoได้ -
ระบบ Firewall ได้รับการตั้งค่าอย่างเหมาะสม
-
บัญชีผู้ใช้งาน Docker Hub (ในกรณีที่มีความประสงค์จะสร้าง Image และ Push ไปยัง Docker Repository)
เมื่อเตรียมสภาพแวดล้อมครบถ้วนแล้ว สามารถดำเนินการติดตั้ง Docker ในขั้นตอนถัดไปได้
Installing Docker
แพ็กเกจ Docker ที่มีอยู่ใน Ubuntu Official Repository อาจไม่ใช่เวอร์ชันล่าสุด เพื่อให้ได้ Docker เวอร์ชันที่ใหม่
และมีความเสถียรสูงสุด จึงเลือกติดตั้ง Docker จาก Docker Official Repository
Update Package Index
เริ่มต้นด้วยการอัปเดตรายการแพ็กเกจของระบบเพื่อให้ระบบรับทราบข้อมูลแพ็กเกจล่าสุดจาก repository ต่าง ๆ
sudo apt updateInstall Required Prerequisite Packages
ติดตั้งแพ็กเกจพื้นฐานที่จำเป็น เพื่อให้ระบบสามารถใช้งาน APT ผ่านการเชื่อมต่อแบบ HTTPS
แพ็กเกจเหล่านี้มีหน้าที่ในการจัดการใบรับรองความปลอดภัย การดาวน์โหลดข้อมูล และการเพิ่ม repository จากภายนอก
sudo apt install apt-transport-https ca-certificates curl software-properties-commonAdd Docker Official GPG Key
เพิ่ม GPG Key ของ Docker เพื่อใช้ยืนยันความถูกต้องและความน่าเชื่อถือของแพ็กเกจที่ดาวน์โหลดจาก Docker Repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Add Docker Repository to APT Sources
เพิ่ม Docker Official Repository ลงในแหล่งที่มาของแพ็กเกจ (APT sources) เพื่อให้ระบบสามารถติดตั้ง Docker จาก repository อย่างเป็นทางการได้
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"เมื่อเพิ่ม repository แล้ว ระบบจะทำการอัปเดตฐานข้อมูลแพ็กเกจโดยอัตโนมัติ เพื่อรวมข้อมูลแพ็กเกจ Docker
จาก repository ที่เพิ่มเข้ามาใหม่ ก่อนดำเนินการติดตั้ง Docker ควรตรวจสอบแหล่งที่มาของแพ็กเกจ
เพื่อยืนยันว่าแพ็กเกจ Docker ที่จะติดตั้งมาจาก Docker Official Repository ไม่ใช่จาก Ubuntu Default Repository
apt-cache policy docker-ceระบบจะแสดงผลลัพธ์ที่มีลักษณะใกล้เคียงกับตัวอย่างด้านล่าง
ทั้งนี้หมายเลขเวอร์ชันของ Docker อาจแตกต่างกันไปในแต่ละช่วงเวลา
docker-ce:
Installed: (none)
Candidate: 5:19.03.9~3-0~ubuntu-focal
Version table:
5:19.03.9~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 PackagesInstall Docker Engine
หลังจากตั้งค่า Repository เรียบร้อยแล้ว สามารถติดตั้ง Docker Engine ได้โดยตรงจาก Docker Official Repository
sudo apt install docker-ceเมื่อการติดตั้งเสร็จสมบูรณ์ ระบบจะเริ่มต้น Docker daemon ให้อัตโนมัติ และตั้งค่าให้ Docker ทำงานทุกครั้งเมื่อระบบบูต
Verify Docker Service Status
ตรวจสอบสถานะการทำงานของ Docker เพื่อยืนยันว่าบริการทำงานอยู่ในสถานะปกติ
sudo systemctl status dockerหาก Docker ทำงานถูกต้อง จะปรากฏสถานะเป็น active (running)
แสดงว่า Docker Engine พร้อมสำหรับการใช้งานบนระบบเรียบร้อยแล้ว
Output
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockการติดตั้ง Docker ในขั้นตอนนี้ ไม่ได้ติดตั้งเฉพาะ Docker Service (Docker Daemon) เท่านั้น แต่ยังรวมถึงคำสั่ง docker ซึ่งเป็น Docker Client สำหรับควบคุมและจัดการ Container