Spring boot & Docker EP.2–คำสั่ง docker พื้นฐาน
สำหรับ EP.2 นี้ก็จะมาอธิบายแค่ คำสั่งพื้นฐาน Docker ที่จำเป็นจะต้องใช้เนี่ยแหล่ะครับ
1. Build image — สร้าง Image จาก Dockerfile
ที่ใช้ build image ของ springboot ก็น่าจะอันนี้แหล่ะ
docker build --tag=spring-boot-application:base .
สำหรับ tag เราจะใส่เป็นอะไรก็ได้นะ ของผมใส่เป็น spring-boot-application:base ไปก่อน base นี่คือส่วนใหญ่เขาน่าจะใส่เป็นเวอร์ชั่นสะมากกว่า ถ้าไม่ใส่เหมือนจะเป็น latest ให้
ส่วน . ด้านหลังก็คือ directory ปัจจุบันนั่นแหล่ะที่จะทำการ build
2. Run container — รัน container จาก image
การ run container จาก image เนี่ย จะทำจริงๆมันก็ง่าย แต่ที่เล่าไปใน EP ที่แล้วว่ามันต้อง setup ตอนรันให้ container มันเชื่อมกันจะยังไม่พูดถึงละกันนะ เดี๋ยวไว้ใน EP อื่นๆได้ทำก็จะเห็น
ส่วนใหญ่ที่ใส่จริงๆจะเป็น -p อ่ะ เป็นการ map port ของ container กับ port ของเครื่องเรา เช่น
spring boot รันอยู่ใน container ที่ port 8080 เราก็ต้อง map 8080 ของ container ให้ออกมาเป็น 8080 ของเครื่องเราด้วยเช่นกัน แบบคำสั่งด้านล่าง
docker run -p8080:8080 spring-boot-application:base
หรือ
docker run -p8080:8080 <image_id>
สำหรับ image_id นั้นจะใส่เป็นค่าอะไร สามารถดูได้จากการใช้คำสั่งในข้อถัดไปครับ
3. Process status — List เพื่อดู container
การ list เพื่อดู container เนี่ย เป็นอีกคำสั่งที่มีประโยชน์มากๆ บางทีคิดอะไรไม่ออกก็ list process มันขึ้นมาดูซะงั้น งงๆ
สำหรับคำสั่งที่ใช้คือ
docker ps
จะได้ผลลัพธ์มาหน้าตาคล้ายๆแบบนี้
แต่ๆ การใช้ docker ps นั้น จะได้ผลลัพธ์ออกมาแค่ container ที่ทำงานอยู่เท่านั้น ในบางครั้งเรามี container ที่เรา stop ไป ก็สามารถ list ขึ้นมาดูได้โดยใช้คำสั่ง
docker ps -a
เท่านี้ก็จะแสดง container ทั้งหมดที่มีอยู่ได้แล้วนั่นเอง
4. Start & Stop container — เริ่มหรือหยุด container
หลังจากที่เรารันไปแล้ว บางครั้งเราอาจจะมีความจำเป็นต้องหยุดการทำงานของ container และเริ่มการทำงานของ container ใหม่อีกครั้ง สามารถทำได้โดยใช้คำสั่งด้านล่าง
4.1 Stop container — หยุดการทำงานของ container
docker stop <container_id>
และ
4.2 Start container — เริ่มการทำงานของ container
docker start <container_id>
หรือจริงๆ สามารถใส่ชื่อ container ก็ยังได้ แต่แนะนำว่า container_id นี่ชัวร์สุด และยังสามารถรัน หรือ หยุดหลายๆอันพร้อมกันได้ด้วยนะ เช่น
docker start 4c01db0b339c d7886598dbe2
จะเป็นการ start container id 4c01db0b339c และ d7886598dbe2 ขึ้นมานั่นเอง
5. Images — List เพื่อดู image
การดู image ที่เรา pull มาไว้ที่เราแล้วสามารถดูได้โดยใช้คำสั่ง
docker images
จะได้ผลลัพธ์ดังนี้
ก็จะมีชื่อ repository, tag และ image id รวมถึงรายละเอียดอื่นๆอีกเล็กน้อยตามภาพด้านบน
6. Delete container — ลบ container
ถ้าต้องการจะลบ container ที่ไม่ได้ใช้แล้วนั้นสามารถใช้คำสั่ง
docker rm <container_id>
ได้เลย แต่ถ้าต้องการจะลบ container ที่รันอยู่นั้นต้องใส่ option -f เข้าไปเพิ่มเป็น
docker rm -f <container_id>
เท่านี้ container ก็จะถูกลบไปนั่นเอง
7. Delete image — ลบ image
คล้ายๆกับการลบ container แต่เปลี่ยนคำสั่งจาก rm เป็น rmi และใส่ image id แทนเช่น
docker rmi -f <image_id>
สำหรับ EP นี้ก็ขอจบไปเพียงเท่านี้เป็นคำสั่งพื้นฐานที่ได้ใช้อยู่บ่อยๆ สำหรับคำสั่งบางอย่างที่จำเป็นแต่ไม่ได้ถูกเขียนไว้ใน EP นี้ก็คือคำสั่งเช่น
docker logs
docker exec
docker network
และอื่นๆอีกมากมายซึ่งสามารถหาข้อมูลเพิ่มเติมได้จากลิ้งค์ด้านล่างเพื่อดูว่ามีคำสั่งอะไรให้เราใช้อีกบ้าง
สำหรับวันนี้ก็ขอลาไปก่อน หวังว่าจะได้พบกันใหม่ใน EP.3 คร้าบ