- Published on
Docker คืออะไร
- Authors
- Name
- Panuwat Boonrod
- @nilpanuwat
Overview
Docker คืออะไร ?
Docker คือ ตัวหนึ่งที่มีการทำงานในลักษณะจำลองสภาพแวดล้อมขึ้นมาบนเครื่อง server เพื่อใช้ในการ run services บางอย่าง โดยอาจจะนึกถึงการทำงานคล้ายๆกับ Virtual Machine แต่ Docker ใช้เพียงแค่ container หนึ่ง สร้างขึ้นมาเพื่อ run เพียง 1 service เท่านั้น ทำให้เราไม่จำเป็นต้องมีส่วนของ OS เข้าไปเกี่ยวเหมือน VM อื่น ๆ
Docker Image และ Container คืออะไร ?
Docker Image มองคล้ายๆกับเป็น Prototype ของ Container ซึ่งภายในนั้น จะประกอบไปด้วย application ต่างๆ รวมถึง การ config ค่าต่างๆอีกด้วย จากนั้นยังสามารถ push ขึ้นไปยัง Docker regitry ได้อีกด้วย
ส่วนของ Container นั้น จะเป็นลักษณะคล้ายกล่องที่จะนำ Image มาติดตั้ง เพื่อให้ใช้งาน service จาก image นั้น ๆได้ โดยจะสามารถสั่ง start , stop ในแต่จะ container ได้
ความน่าสนใจของ Docker
เจ้า Docker นั้น สามารถใช้งานได้หลากหลาย platform มากๆ ทั้ง Linux,MacOS, Windows อีกทั้งยังมีขนาดเล็ก สามารถ Start, Stop Service ได้อย่างรวดเร็ว และในกรณีที่ต้องการย้ายไป รันยังเครื่องอื่นก็สามารถทำได้เพียง เครื่องนั้น ๆ ติดตั้ง Docker machine และข้อสำคัญอีกอย่างคือ Docker registry (Docker hub) ทำให้ผู้ใช้สามารถเลือก pull image ต่างๆที่ต้องการมาใช้ได้ทันที
ตัวอย่าง
ในตัวอย่างนี้ผมจะขอยกตัวอย่างการ pull image จาก docker registry เป็นตัวอย่างง่ายๆซึ่งเป็น gif เล็กๆ ของ Cherprang BNK48 ของเรานั่นเอง และ จะแนะนำคำสั่งที่จำเป็นและใช้บ่อยๆด้วยครับ
อันดับแรก ให้ทำการติดตั้งตัว Docker ก่อน
https://docs.docker.com/install/
เมื่อติดตั้งแล้ว ทำการ Run ตัว Docker ขึ้นมา เมื่อขึ้น status: Docker is running เป็นอันใช้ได้
ต่อไปจะเป็นการแนะนำคำสั่งเบื้องต้น
- docker ps => ดู process ทั้งหมด ที่docker กำลังทำงานอยู่
- docker ps -a => ดู process ทั้งหมด ที่ ทำงานมาแล้ว
- docker images => ดู images ของ docker ทั้งหมดที่มีอยู่
- docker rmi -f
<IMAGE ID>
=> ใช้ทำการลบ image ต่างๆ - docker pull
<IMAGE NAME>
=> ใช้ทำการ pull image จาก hub
ต่อไปจะเป็นการ ทดลอง pull image จาก hub
ไปที่ลิ้งค์นี้ https://hub.docker.com/r/82xcherodinger/cherbnk/
ให้เราทำการ pull image ลงมาโดยใช้คำสั่ง
$ docker pull 82x/cherodinger/cherbnk
จากนั้นให้เราใช้คำสั่งเพื่อรัน image ตัวนี้ครับ
$ docker run -p 8888:5000 82xcherodinger/cherbnk
จากนั้นให้เราเข้าไปที่
http://localhost:8888
ทั้งหมดนี้ เป็นเพียงตัวอย่างเบื้องต้น เพื่อแสดงให้เห็นภาพว่า docker สามารถทำอะไรได้บ้าง อาจจะยังไม่ลงลึกถึงรายละเอียดต่างๆ ในคราวหน้า เราจะมาดูถึงเรื่องการสร้าง Dockerfile และ การ push Docker image ของเราเพื่อ ขึ้นไปยัง Docker Hub กันครับ
ดูเพิ่มเติม
- Docker documentation: https://docs.docker.com/engine/userguide/
- Docker registry: https://hub.docker.com
- Docker curriculum : https://docker-curriculum.com/