Docker คืออะไร
Docker คือ Platform สำหรับการ Developing, Shipping and Running Application ที่สร้างสภาพแวดล้อมเสมือนจริง
Docker Platform มีส่วนประกอบด้วยสิ่งเหล่านี้
Docker Engine คือ เป็นเหมือนตัว Runtime สำหรับ Build และ Run Docker Container ช่วยให้คุณสามารถจัดการ Dependencies ต่าง ๆ
Docker Hub คือ แหล่งที่จัดเก็บ Docker Image ต่าง ๆ (มองว่าคล้ายกับ github)
Docker Machine คือ สำหรับการ Deploy Docker ไปที่ Production
Docker Swarm คือ เครื่องมือที่จัดการเครื่องที่ Run Docker หลาย ๆ เครื่องให้อยู่ในสภาพแวดล้อมเดียว สามารถ scale ระบบบน Docker Swarm ได้มีประสิทธิภาพมากกว่าการสั่งงาน Docker ทีละเครื่อง
Docker Compose คือ การร่วมเอา Docker Container หลายๆ Container มาสั่งให้ทำงานพร้อมกัน
Kitematic คือ เครื่องมือ GUI ที่รวบรวมคำสั่งของ Docker Command ต่าง ๆ ในรูปแบบ UI ให้สามารถใช้งานได้ง่าย ๆ ยิ่งขึ้น
ปัญหาที่เหล่า Developer พบเจอในการ Development Application
- เสียเวลาติดตั้ง Application ใหม่ทุกครั้ง
- Run Application บน Production ไม่ได้แต่ Run บนเครื่อง Dev ได้ (เป็นแบบนี้บ่อยมาก)
- มี Dev เข้ามาเพิ่มในทีมต้องเสียเวลาในการจัดเตรียม Environment ใหม่ (ซึ่งเตรียมแล้วอาจจะเกิดปัญหา Environment ไม่ตรงกับเครื่องเพื่อนในเรื่องของ Version ต่างๆ)
Install Docker On Window Side
- ตรวจสอบสภาพความพร้อมของเครื่องที่จะทำการ install
- ตรวจสอบ OS Version ของเครื่องที่จะ Install
- ตรวจสอบ Virtualization ว่า enabled อยู่หรือไม่ ให้ทำการ enabled Virtualization ก่อน
- Install Tools
- Install Docker Toolbox (Click next, next, …)
- Install VirtualBox
- ตรวจสอบ Icon Tools บนหน้า Desktop ของเครื่อง Computer คุณ
เริ่มการเข้าใช้งาน Docker
- Click Icon Docker Quickstart ขึ้นมา
- ตรวจสอบ Docker-machine IP
- ตรวจสอบ Version
docker --version docker-compose --version docker-machine --version
ทำความเข้าใจ Docker Containers และ Docker Images
- Images
- เมื่อเป็น Image แล้วจะอ่านได้อย่างเดี่ยวแก้ไขอะไรไม่ได้
- ถูกสร้างขึ้นจากผู้ใช้งาน Docker
- ถูกจัดเก็บไว้ที่ Docker Hub หรือ Local Registry
- Containers
- แยกการทำงานออกจากกัน
- Containers ต่าง ๆ จำเป็นต้อง Run บน Application ของคุณ
- 1 Container จำเป็นต้องมี Image 1 อันเป็นอย่างน้อย
Create Hello World Container
#Syntax docker run [options] [image] [command] [args] #examples docker run ubuntu:14.04 echo "Hello World" #*image is specified with repository:tag
Docker Command อื่น ๆ ที่ใช้งานบ่อย ๆ
#Find Images docker images #Find Container is Running docker ps # Find Container all docker ps -a #Find Logs is Container docker logs <container id> #Container with Terminal # -i flag tells docker to connect to STDIN on the container # -t flag specifies to get a pseudo-terminal docker run -i -t ubuntu:latest /bin/bash #Running in Detached Mode (Run Background Process) docker run -d <image id> #More Practical Container # -P flag to map container ports to host ports docker run -d -P tomcat:7 #start container docker start <container id> #stop container docker stop <container id> #delete conatiner docker rm <container id> #delete image docker rmi <image id> #or docker rmi <repo:tag> #mapped to a host directory docker run -i -t -v /data/src:/test/src nginx:1.7 #mapping ports docker run -d -p 8080:80 nginx:1.7 #automaping ports docker run -d -P nginx:1.7 #creating a Link docker run -d -P --name website --link database:db nginx