Docker เป็นแพลตฟอร์มที่ใช้สำหรับพัฒนา จัดส่ง และรันแอปพลิเคชัน โดยใช้เทคโนโลยี Container ที่แยกแอปพลิเคชันออกจากโครงสร้างพื้นฐาน ทำให้สามารถติดตั้งและรันแอปพลิเคชันได้อย่างรวดเร็วและสม่ำเสมอในทุกสภาพแวดล้อม
- ความสะดวก: ติดตั้งและรันแอปพลิเคชันได้ง่าย
- ความเสถียร: ทำงานเหมือนกันในทุกสภาพแวดล้อม
- ประสิทธิภาพ: ใช้ทรัพยากรน้อยกว่า Virtual Machine
- ความยืดหยุ่น: ปรับแต่งและอัพเดทได้ง่าย
คุณสามารถดูเอกสารประกอบการติดตั้งอย่างเป็นทางการได้ที่ https://docs.docker.com/engine/install/ แต่ในคู่มือนี้เราจะใช้วิธีที่ง่ายที่สุด
ดาวน์โหลดสคริปต์
curl -fsSL https://get.docker.com -o get-docker.shรันสคริปติดตั้ง
sudo sh get-docker.shตรวจสอบเวอร์ชั่น
docker --versionตรวจสอบสถานะ Docker
sudo systemctl status dockerโดยเริ่มต้น คำสั่ง Docker จำเป็นต้องใช้สิทธิ์ root หรือใช้ sudo ในการรันคำสั่ง เราจะมาตั้งค่าให้อยู่ในกลุ่มเดียวกันโดยใช้คำสั่งนี้
sudo usermod -aG docker ${USER}สลับเข้าสู่ user อีกครั้ง
su - ${USER}ทดสอบคำสั่ง:
docker psหลังจากติดตั้งเสร็จ ควรตรวจสอบว่าระบบทำงานถูกต้องโดย: ตรวจสอบว่า Docker daemon ทำงาน:
sudo systemctl status dockerทดสอบดาวน์โหลด image:
docker pull hello-worldทดสอบรัน container:
docker run hello-world| คำสั่ง | ความหมาย | ตัวอย่างการใช้งาน |
|---|---|---|
docker pull |
ดาวน์โหลด Image จาก Docker Hub มาไว้ในเครื่องของเรา | docker pull nginx |
docker images |
แสดงรายการ Image ทั้งหมดที่มีอยู่ในเครื่อง | docker images |
docker build |
สร้าง Image ใหม่จากไฟล์ Dockerfile | docker build -t myapp:1.0 . |
docker rmi |
ลบ Image ที่ไม่ได้ใช้งานออกจากเครื่อง (rmi = remove image) | docker rmi nginx |
docker ps |
แสดง Container ที่กำลังทำงานอยู่ | docker ps |
docker ps -a |
แสดง Container ทั้งหมด รวมถึงที่หยุดแล้ว | docker ps -a |
docker run |
รัน Container ใหม่จาก Image | docker run -it ubuntu /bin/bash |
docker start |
เริ่ม Container ที่หยุดไว้ | docker start my_container |
docker stop |
หยุด Container ที่กำลังทำงาน | docker stop my_container |
docker rm |
ลบ Container ที่ไม่ใช้งานแล้ว | docker rm my_container |
docker exec |
รันคำสั่งภายใน Container ที่กำลังทำงานอยู่ | docker exec -it my_container /bin/bash |
docker logs |
แสดง log ของ Container | docker logs my_container |
docker network ls |
แสดงรายการ Network ทั้งหมด | docker network ls |
docker network create |
สร้าง Network ใหม่ | docker network create my_network |
docker compose up -d |
รันบริการทั้งหมดจากไฟล์ docker-compose.yml แบบ background |
docker compose up -d |
docker compose down |
หยุดและลบ container, network, volume ที่สร้างจาก compose | docker compose down |
-d→ รันเบื้องหลัง (detached mode)--name→ ตั้งชื่อ container-p→ เปิดพอร์ต เช่น-p 8080:80(host_port:container_port)-v→ mount โฟลเดอร์ เช่น-v /host/data:/container/data-e→ กำหนดค่าตัวแปรสภาพแวดล้อม เช่น-e MYSQL_ROOT_PASSWORD=secret--restart→ กำหนดนโยบายการรีสตาร์ท เช่น--restart always
แหล่งข้อมูลเพิ่มเติม:
- Docker Documentation
- Docker CLI Reference
- Docker Compose Documentation
- Docker Hub - แหล่งรวม Docker Images
- Docker Best Practices