Skip to main content

Creating and Running Containers

การสร้างและการรัน Docker Containers คืออะไร?

การสร้างและการรัน Docker Containers เป็นกระบวนการในการสร้าง environment ที่แยกออกมาเพื่อรันแอปพลิเคชัน โดย Docker Container เป็นเครื่องมือที่ช่วยให้การพัฒนา, ทดสอบ, และการใช้งานแอปพลิเคชันในหลายๆ สภาพแวดล้อมเป็นไปได้ง่ายดายและรวดเร็ว

ขั้นตอนการสร้างและรัน Docker Container

1. การสร้าง Docker Image

ก่อนที่คุณจะสามารถรัน Docker Container ได้ คุณจะต้องสร้าง Docker Image ก่อน หากคุณใช้ Dockerfile คุณสามารถใช้คำสั่ง docker build เพื่อสร้าง Docker Image ดังนี้:

docker build -t my-image .

ในที่นี้:

  • -t my-image กำหนดชื่อของ image ที่สร้าง
  • . คือพาธที่ Dockerfile อยู่ (ในกรณีนี้คือโฟลเดอร์ปัจจุบัน)

2. การรัน Docker Container จาก Image

หลังจากที่สร้าง Docker Image แล้ว คุณสามารถรัน Docker Container จาก Image ที่สร้างขึ้นมาได้ โดยใช้คำสั่ง docker run:

docker run -d -p 8080:80 my-image

ในที่นี้:

  • -d ใช้เพื่อรัน container ใน background (detached mode)
  • -p 8080:80 กำหนดพอร์ตที่ container จะรับข้อมูลจากภายนอก (port 8080 บนเครื่อง host map ไปยัง port 80 ของ container)
  • my-image คือชื่อของ Docker Image ที่จะใช้ในการรัน container

3. การรัน Docker Container จาก Official Images

คุณสามารถรัน Docker Container โดยไม่ต้องสร้าง Docker Image ด้วยตนเอง โดยใช้ Docker Images ที่มีอยู่แล้วใน Docker Hub ซึ่งเป็น repository ของ Docker Images ที่พร้อมใช้งาน ตัวอย่างเช่น การรัน nginx web server:

docker run -d -p 8080:80 nginx

คำสั่งนี้จะดาวน์โหลด nginx image จาก Docker Hub และรันใน container พร้อมเปิดพอร์ต 80 ภายใน container ให้เข้าถึงผ่านพอร์ต 8080 บนเครื่อง host

4. การเชื่อมต่อไปยัง Docker Container

หากคุณต้องการเข้าถึง shell ภายใน Docker Container เพื่อรันคำสั่งภายใน container สามารถใช้คำสั่ง docker exec ดังนี้:

docker exec -it container_id /bin/bash

ในที่นี้:

  • -it ใช้สำหรับการเปิด interactive terminal
  • container_id คือ ID ของ container ที่ต้องการเข้าถึง
  • /bin/bash คือคำสั่งที่ใช้เปิด shell ภายใน container

5. การตรวจสอบการทำงานของ Docker Container

หากต้องการตรวจสอบว่ามี Docker Container ใดบ้างที่กำลังทำงานอยู่ สามารถใช้คำสั่ง docker ps:

docker ps

คำสั่งนี้จะแสดงรายชื่อของ containers ที่กำลังทำงานอยู่ในขณะนี้ รวมถึงพอร์ตที่เปิดและสถานะของ container

6. การดูข้อมูลทั้งหมดของ Container

หากต้องการดูข้อมูลทั้งหมดของ Docker Containers ที่กำลังทำงาน (รวมถึงที่หยุดทำงานแล้ว) ให้ใช้คำสั่ง:

docker ps -a

7. การหยุด Docker Container

หากต้องการหยุดการทำงานของ Docker Container ที่กำลังทำงานอยู่ ให้ใช้คำสั่ง docker stop:

docker stop container_id

คำสั่งนี้จะหยุดการทำงานของ container ที่มี container_id ที่ระบุ

8. การลบ Docker Container

หากต้องการลบ Docker Container ที่ไม่จำเป็นออกจากเครื่อง สามารถใช้คำสั่ง docker rm:

docker rm container_id

หากต้องการลบหลาย container พร้อมกัน:

docker rm container_id1 container_id2

9. การลบ Docker Image

หากต้องการลบ Docker Image ที่ไม่จำเป็นออกจากเครื่อง สามารถใช้คำสั่ง docker rmi:

docker rmi image_id

คำสั่งนี้จะลบ Docker Image ที่มี image_id ที่ระบุ

10. การดู Log ของ Docker Container

หากต้องการดู log ของ Docker Container เพื่อดูข้อความแสดงข้อผิดพลาดหรือข้อมูลต่างๆ ที่เกิดขึ้นใน container สามารถใช้คำสั่ง docker logs:

docker logs container_id

คำสั่งนี้จะให้ข้อมูล log ของ container ที่ระบุ

การทำงานกับ Docker Volumes

1. การสร้าง Docker Volume

เพื่อเก็บข้อมูลที่ต้องการใช้ระหว่างหลายๆ Docker Containers หรือเพื่อเก็บข้อมูลที่ไม่ต้องการให้หายไปเมื่อ container หยุดทำงาน สามารถใช้ Docker Volume:

docker volume create my-volume

คำสั่งนี้จะสร้าง volume ชื่อ my-volume

2. การใช้ Docker Volume กับ Container

เมื่อสร้าง volume แล้ว คุณสามารถเชื่อมต่อ volume นี้กับ Docker Container ได้ โดยใช้คำสั่ง docker run และเพิ่ม option -v:

docker run -d -v my-volume:/data my-image

ในที่นี้:

  • -v my-volume:/data คือการเชื่อมต่อ volume ชื่อ my-volume ไปยัง path /data ภายใน container

3. การตรวจสอบ Docker Volumes

หากต้องการดูข้อมูลของ Docker Volumes ที่มีอยู่ในเครื่องของคุณ สามารถใช้คำสั่ง:

docker volume ls

สรุป

การสร้างและการรัน Docker Containers ช่วยให้คุณสามารถสร้างและจัดการสภาพแวดล้อมที่เหมาะสมสำหรับแอปพลิเคชันได้อย่างง่ายดายผ่านคำสั่งพื้นฐานใน Docker CLI เช่น docker run, docker exec, docker stop, และ docker ps การใช้งาน Docker Container สามารถทำให้การพัฒนาและการใช้งานแอปพลิเคชันเป็นไปได้เร็วขึ้นและสะดวกยิ่งขึ้น