Docker Hub คืออะไร? วิธี Pull และ Push Image

Docker Hub คือ คลังเก็บ Docker Image ที่ใหญ่ที่สุดในโลก เปรียบเหมือน GitHub แต่สำหรับ Container Image โดยเฉพาะ มีทั้ง Image สาธารณจาก Official และ Community ให้ใช้ฟรีนับล้าน Image

Docker Hub คืออะไร?

Docker Hub ที่ hub.docker.com เป็น Registry กลางสำหรับเก็บและแชร์ Docker Image มีทั้ง Official Image จากผู้พัฒนาต้นทาง เช่น nginx, mysql, node, python และ Image จาก Community ที่ใครก็สามารถ Push ขึ้นมาได้

Pull Image จาก Docker Hub

ทุกครั้งที่รัน docker run หรือ docker pull Docker จะดาวน์โหลด Image จาก Docker Hub อัตโนมัติ ถ้าไม่มีในเครื่อง

# Pull Image ล่าสุด
docker pull nginx

# Pull Image เฉพาะ Version (Tag)
docker pull nginx:1.25
docker pull mysql:8.0
docker pull node:20-alpine

# ดู Image ที่ Pull มาแล้ว
docker images

ค้นหา Image บน Docker Hub

# ค้นหาผ่าน Command Line
docker search nginx
docker search wordpress

หรือค้นหาผ่านเว็บที่ hub.docker.com ซึ่งแสดงรายละเอียด Tag, จำนวน Pull และ Documentation ครบกว่า

Push Image ขึ้น Docker Hub

ต้องการแชร์ Image ที่สร้างเอง ทำได้ดังนี้

1. สมัครและ Login

docker login

2. Tag Image ด้วยชื่อ Username

ชื่อ Image ที่จะ Push ต้องอยู่ในรูปแบบ username/image-name:tag

docker tag my-app:latest somchai/my-app:1.0

3. Push ขึ้น Docker Hub

docker push somchai/my-app:1.0

4. Pull จากเครื่องอื่น

docker pull somchai/my-app:1.0

Official Image vs Community Image

ประเภท ตัวอย่าง ความน่าเชื่อถือ
Official Image nginx, mysql, node ดูแลโดยทีมต้นทาง สูงมาก
Verified Publisher bitnami/wordpress บริษัทที่ Docker รับรอง
Community Image username/image ขึ้นอยู่กับผู้สร้าง

ทางเลือกอื่นนอกจาก Docker Hub

  • GitHub Container Registry (ghcr.io) — เชื่อมกับ GitHub Actions ได้ดี
  • AWS ECR — สำหรับ Deploy บน AWS
  • Private Registry — ติดตั้งเองบน Server ส่วนตัว

สรุป

Docker Hub คือแหล่งรวม Image ที่ใหญ่ที่สุด ใช้ docker pull เพื่อดาวน์โหลดมาใช้ และ docker push เพื่อแชร์ Image ของตัวเอง บทความถัดไปจะอธิบายวิธีลบ Container, Image และ Volume ที่ไม่ใช้ เพื่อรักษาพื้นที่ Disk ให้สะอาดครับ