Docker และ docker-compose Cheat Sheet

บทความโดย บทความโดยบทความโดย บทความโดย ผศ.ดร.ณับทความโดยฐโชติ พรหมฤทธิ์ และ อ.ดร.สัจจาภรณ์ ไวจรรยา
ภาควิชาคอมพิวเตอร์
คณะวิทยาศาสตร์
มหาวิทยาลัยศิลปากร

Docker และ docker-compose Cheat Sheet
=====================================

Clone repository
git clone [email protected]:username/webserver.git

คำสั่ง Docker และ docker-compose พื้นฐาน

ตรวจสอบ Docker version
docker version

เรียกใช้งาน Container ใหม่
docker run [options] IMAGE [command] [args]

แสดงรายการ Container ที่กำลังรันอยู่
docker ps

แสดงรายการ Container ทั้งหมด (รวมทั้งที่หยุดแล้ว)
docker ps -a

แสดงรายการ Image
docker images

สร้าง Image จาก Dockerfile
docker build [options] PATH | URL | -

ดึง Image จาก Registry
docker pull IMAGE

ส่ง Image ไปยัง Registry
docker push IMAGE

หยุด Container ที่กำลังรัน
docker stop CONTAINER

เริ่ม Container ที่หยุดแล้ว
docker start CONTAINER

ลบ Container
docker rm CONTAINER

ลบ Image
docker rmi IMAGE

สร้างไฟล์ docker-compose.yml เช่น
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./app:/usr/share/nginx/html
      
เริ่มต้น Docker containers
docker-compose up -d

หยุดและลบบริการทั้งหมด
docker-compose down

สร้างหรือสร้างใหม่บริการ
docker-compose build

เริ่มบริการที่มีอยู่แล้ว
docker-compose start

หยุดบริการที่กำลังรันอยู่
docker-compose stop

ดู Logs จากบริการ
docker-compose logs

Best Practices
- ใช้ Image อย่างเป็นทางการ (Official Images) เมื่อเป็นไปได้
- รักษาขนาดของ Image ให้เล็ก โดยใช้ Multi-stage Builds
- หลีกเลี่ยงการใช้แท็ก latest ในสภาพแวดล้อม Production
- ใช้ Base Image ที่มีขนาดเล็ก เช่น alpine หากเป็นไปได้
- ใช้ SSH keys สำหรับการเชื่อมต่อกับ GitLab เพื่อความปลอดภัย
- เก็บ configuration ใน docker-compose.yml เพื่อความสะดวกในการจัดการ
- Commit บ่อย ๆ และใช้ข้อความ commit ที่มีความหมาย
- ตรวจสอบ Log และสถานะของ Docker เป็นประจำ


คณะวิทยาศาสตร์
มหาวิทยาลัยศิลปากร
มหาวิทยาลัยศิลปากร
ภาควิชาคอมพิวเตอร์
คณะวิทยาศาสตร์
มหาวิทยาลัยศิลปากร