What is docker
อธิบายความหมายของ Docker และ Containerization เปรียบเทียบ Docker กับ Virtual Machines (VMs) ทำไมต้องใช้ Docker? ข้อดีและข้อเสีย Docker คือแพลตฟอร์มที่ช่วยให้สร้าง ทดสอบ และ deploy แอปพลิเคชันได้อย่างรวดเร็วและง่ายดาย โดยใช้สิ่งที่เรียกว่า Containerization ซึ่งเป็นการแพ็กแอปพลิเคชันและ dependencies ทั้งหมดเข้าด้วยกันในคอนเทนเนอร์เดียว ทำให้แอปพลิเคชันสามารถทำงานได้บนทุกสภาพแวดล้อม (เช่น เครื่องคอมพิวเตอร์, เซิร์ฟเวอร์, คลาวด์) โดยไม่ขึ้นอยู่กับระบบปฏิบัติการ https://www.docker.com/products/docker-desktop/
Docker Image คือแม่แบบสำหรับสร้าง Container โดยภายใน Image จะมีโค้ด, runtime, system tools, system libraries และ settings ต่างๆ ที่จำเป็นในการรันแอปพลิเคชัน Docker Container คือ instance ที่รันอยู่ของ Image โดยแต่ละ Container จะมีสภาพแวดล้อมที่แยกจากกัน ทำให้แอปพลิเคชันที่อยู่ใน Container ไม่ได้รับผลกระทบจากแอปพลิเคชันอื่นๆ ที่รันอยู่บนเครื่องเดียวกัน docker run: ใช้สำหรับรันคอนเทนเนอร์ใหม่ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
รันคอนเทนเนอร์ nginx ในพื้นหลัง (-d) และ map port 8080 บนเครื่อง host ไปยัง port 80 ในคอนเทนเนอร์ (-p) docker run -d -p 8080:80 nginx
รันคอนเทนเนอร์ ubuntu โดยใช้ image เวอร์ชั่นล่าสุด และเปิด bash shell docker run ubuntu:latest bash
docker start [OPTIONS]
docker restart [OPTIONS]
docker kill [OPTIONS]
docker rm [OPTIONS]
docker rmi [OPTIONS]
docker pull [IMAGE_NAME[:TAG]]
docker build [OPTIONS]PATH|URL|-
ไฟล์ที่ใช้ในการสร้าง Docker Image โดยภายใน Dockerfile จะมีคำสั่งต่างๆ ที่ Docker ใช้ในการสร้าง Image เช่น การ copy ไฟล์, การติดตั้ง packages, การตั้งค่า environment variables เครื่องมือที่ใช้ในการจัดการ Container หลายๆ Container พร้อมกัน โดยใช้ไฟล์ YAML ในการกำหนด Container ต่างๆ และ dependencies ของ Container การจัดการเครือข่ายของ Container โดย Docker มี network modes หลายแบบให้เลือก เช่น bridge, host, none พื้นที่จัดเก็บข้อมูลที่ Container สามารถเข้าถึงได้ โดยข้อมูลที่อยู่ใน Volume จะไม่ถูกลบเมื่อ Container ถูกลบ registry ที่เก็บ Docker Images โดยเราสามารถ push Image ของเราขึ้นไปบน Docker Hub และ pull Image จาก Docker Hub มาใช้งานได้ (อาจต้องสร้าง docker account มาเพื่อเข้าถึง) Docker Starter pack
*หลังจากนี้จะทำงานได้ก็ต่อเมื่อเปิด docker desktop
ติดตั้งและลองใช้ Ubontu GUI docker pull dorowu/ubuntu-desktop-lxde-vnc
docker run -d -p 5901:5901 -p 6080:80 --name ubuntu_desktop dorowu/ubuntu-desktop-lxde-vnc
เมื่อ run แล้ว ที่ container
เปิดเว็บ brownser port :6080
สร้าง web sever ง่ายๆ บน docker แตกไฟล์แล้วทำการ build
จากนั้น run containner
แตกไฟล์แล้วทำการ build
จากนั้น run containner
แตกไฟล์แล้วทำการ build
จากนั้น run containner