Docker ฉบับผู้เริ่มต้น (Setup On Window)

Sharing is caring!

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

  1. ตรวจสอบสภาพความพร้อมของเครื่องที่จะทำการ install
    1. ตรวจสอบ OS Version ของเครื่องที่จะ Install
    2. ตรวจสอบ Virtualization ว่า enabled อยู่หรือไม่ ให้ทำการ enabled Virtualization ก่อน
  2. Install Tools
    1. Install Docker Toolbox  (Click next, next, …)
    2. Install VirtualBox
  3.  ตรวจสอบ Icon Tools บนหน้า Desktop ของเครื่อง Computer คุณ

docker-icon

เริ่มการเข้าใช้งาน Docker

  1. Click Icon Docker Quickstart ขึ้นมา
  2. ตรวจสอบ Docker-machine IP
  3. ตรวจสอบ 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