10 Docker Commands Every Frontend Developer Should Know

16-Jun-23

คัมภีร์เทพ IT

See the original english version Click here!

 

ในฐานะของ Frontend Developer การได้รู้วิธีการใช้ Docker จะช่วยให้กระบวนการ Build, Test และ Deploy Web Applications ของคุณ ทำได้ง่ายขึ้น อีกทั้งยังช่วยให้คุณทำงานร่วมกับ Backend Developer ได้ราบรื่นขึ้นอีกด้วย และนี่ก็คือ 10 Docker Commands ที่ Frontend Developer ควรรู้จักไว้

1. Docker Build

คำสั่งแรกที่ Frontend Developer ทุกคนควรรู้ คือ docker build คำสั่งนี้จะถูกใช้เพื่อสร้าง Docker image จาก Dockerfile ซึ่ง Dockerfile เป็น Script ที่มี Instructions ในการสร้าง image

สำหรับ Syntax ของคำสั่ง build docker ก็คือ:

docker build -t [image_name] [path/to/dockerfile]

หากต้องการใช้คำสั่งจากตัวอย่างนี้ ให้ cd เข้าไปใน Root Directory ของ Project (ซึ่งมี Dockerfile อยู่) แล้ว Run คำสั่งต่อไปนี้:

docker build -t my-app:v
  • t Argument เป็นรูปแบบย่อของ -tag Argument และจะอนุญาตให้คุณสามารถระบุ Name และ Optional Tag (ส่วนที่ต่อจากเครื่องหมาย Colon) สำหรับ Image
  • Tag เพื่อแยก Version ของ Image หากคุณไม่ใส่ Tag (เช่น กรณีที่คุณเพิ่ง Run คำสั่ง docker build -t my-app จะทำให้ Image ได้รับ Tag "latest" โดยอัตโนมัติ)

2. Docker Images

หากต้องการแสดงรายการของ Docker Images ทั้งหมดที่ถูกสร้างขึ้นในคอมพิวเตอร์ของคุณ คุณจะต้องใช้คำสั่ง docker images

หากคุณ Run สิ่งนี้ คุณควรเห็น my-app image อยู่ในรายการด้วย และที่สำคัญคือ docker images เทียบเท่ากับคำสั่ง docker image ls

3. Docker Run

เมื่อคุณสร้าง Image แล้ว คุณจะ Run มันได้อย่างไร คุณต้องใช้คำสั่ง docker run โดยที่ Syntax ของคำสั่ง docker run ก็คือ:

docker run -p <host_port>:<container_port> [image_name]

ตัวอย่างเช่น หากคุณต้องการเริ่ม Container สำหรับ Image ที่มี Tag ว่า "my-app:v1" และเข้าถึง Container บน Port 80 คุณจะต้อง Run:

docker run -p my-app:v

ตัวอย่างนี้ถือว่า Dockerfile จะแสดง App บน Port 80 ซึ่งในการ Map กับ Host Port อื่น ให้ระบุหมายเลขอื่นสำหรับส่วนแรกของ -p Argument

หากคุณ Run คำสั่งนี้ คุณจะสังเกตเห็นว่า Terminal Window ของคุณจะถูก Lock ไม่ให้ Process ทำงาน หากคุณต้องการ Run Container ไปด้วย ก็ให้เพิ่ม -d Argument เข้าไป ดังนี้:

docker run -d -p my-app:v

คำสั่งจะ Return Container ID และคืนการควบคุม Terminal Window กลับมาให้คุณ

เมื่อคุณ Run Container ส่วนของ Docker จะกำหนดชื่อแบบสุ่ม ๆ ให้ เช่น "happy-einstein" แต่คุณก็สามารถระบุชื่อของคุณเองได้ โดยใส่ --name Argument เข้าไป

ตัวอย่างเช่น เราสามารถตั้งชื่อ Container ที่ Run my-app image ว่า "vite-app" ซึ่งจะใช้คำสั่งดังนี้:

docker run -d -p 80:80 --name vite-app my-app:v1

4. Docker PS

หากต้องการแสดงรายการ Containers ทั้งหมดที่กำลัง Run อยู่ ก็ให้ Run คำสั่งนี้:

docker ps

ถึงตอนนี้ คุณควรเห็น my-app Container อยู่ในรายการ พร้อมด้วย Container ID และ Image Name ของมัน

5. Docker Start/Stop

Container สามารถใช้ Syntax นี้:

docker start|stop <container_name> (or <container_id>)

หากต้องการหยุดการทำงานของ Container ที่คุณตั้งชื่อเอง ให้ Run:

docker stop vite-app

แต่หากต้องการให้เริ่มต้นการทำงานอีกครั้ง คุณต้อง Run:

docker start vite-app

เคล็ดลับ: เมื่อ Container หยุดทำงาน Container นั้นก็จะไม่ปรากฏอยู่ในรายการ Container ที่กำลัง Run อยู่อีกต่อไป (docker ps) แต่คุณยังคงเห็นรายการได้หากคุณ Run คำสั่งนี้ ซึ่งจะแสดง Container ทั้งหมด ไม่ว่าจะกำลัง Run อยู่ หรือหยุดทำงานไปแล้ว:

docker ps --all

6. Docker Logs

เมื่อใช้คำสั่ง docker logs คุณสามารถดู Logs จาก Container ที่กำลัง Run อยู่ได้ ซึ่ง Syntax ก็คือ:

docker logs [container_name]

ตัวอย่างเช่น หากต้องการดู Logs จาก Container ที่เราตั้งชื่อว่า "vite-app" ก็ให้ Run คำสั่งต่อไปนี้:

docker logs vite-app

คำสั่งนี้ จะช่วย Debug ปัญหา หรือ Exceptions ที่เกิดขึ้นใน Container เสียตั้งแต่ต้น

7. Docker Exec

อีกคำสั่ง ที่มีประโยชน์อย่างมากก็คือ docker exec โดยคำสั่งนี้จะอนุญาตให้คุณ Run คำสั่งใน Container ที่กำลัง Run อยู่

สำหรับ Syntax ของคำสั่ง docker exec ก็คือ:

docker exec -it [container_name] [command_to_run]

ตัวอย่างเช่น หากคุณต้องการ Open Shell ที่อยู่ภายใน "vite-app" Container ก็ให้ Run:

docker exec -it vite-app sh

เคล็ดลับ: หากคุณต้องการออกจาก Interactive Shell ก็ให้พิมพ์ 'exit'

8. Docker Login

เมื่อคุณสร้าง Image สำหรับ App และทดสอบ Run สำเร็จแล้ว คุณจะแชร์ Image ให้กับทีมของคุณ หรือ Deploy ไปยัง Cloud Provider ได้อย่างไรบ้าง สำหรับการทำเช่นนั้น คุณต้องมี Container Registry ก่อน

Docker Hub เป็น Container Registry สาธารณะ ซึ่งหมายความว่า ทุกคนสามารถเข้าถึงและ Download Images ที่จัดเก็บไว้ในนั้น เว้นแต่ User จะทำเป็น Private Repository

Cloud Providers อื่น ๆ อย่าง AWS, Azure และ GCP ก็มี Private Container Registries ที่ช่วยให้ Users สามารถจัดเก็บและจัดการกับ Images ของพวกเขาได้

ในการเข้าสู่ Docker Hub (สมมติว่าคุณมี Account แล้ว) คุณจะต้องใช้คำสั่ง:

docker login -u <username>

Cloud Providers รายใหญ่ ๆ มักจะมี cli ของตนเองเพื่อเข้าถึง Container Registries ดังนั้น โปรดตรวจสอบ Document ของ Cloud Providers แต่ละราย เพื่อศึกษารายละเอียดเพิ่มเติม

9. Docker Push

ในการ Push Image ไปยัง Docker Hub ให้ใช้คำสั่ง docker push ซึ่งมี Syntax ดังนี้:

docker push <username>/<image_name>

โปรดทราบว่า Docker Hub จะถือว่าคุณตั้งชื่อ Image ในรูปแบบที่ Docker Hub username ตามด้วย จากนั้นก็ตามด้วยชื่อ Image ที่ต้องการ

สำหรับ Standard Convention เมื่อมีการสร้าง Docker Images ก็คือ:

docker build -t <username>/<image_name>:<tag_name>

ในกรณี ถ้าต้องการสร้าง Image ตัวอย่างสำหรับ Docker Hub account ของผู้เขียนบทความนี้ (Matt Burrell) ก็จะใช้คำสั่งนี้:

docker build -t matttburrellnet/vite-app:v

Docker Hub จะทำการ Tag Image ของ Matt ที่ชื่อ "vite-app" เป็น "v1" ให้โดยอัตโนมัติ

10. Docker Pull

เมื่อคุณเข้าสู่ Container Registry แล้ว คุณสามารถ Pull Images ที่มีอยู่ โดยใช้คำสั่ง docker pull:

docker pull mattburrellnet/vite-app:v

หากคุณเคยใช้ Git มาแล้ว คุณก็น่าจะคุ้นเคยกับ Push และ Pull เป็นอย่างดี

ที่มาhttps://betterprogramming.pub/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด