Slide 1

Slide 1 text

Introduction to Docker

Slide 2

Slide 2 text

Me ● มนัสวิน หาญมงคลชัย ● SKE11 ● Junior Architect at Wongnai ● Wongnai is Hiring! https://careers.wongnai.com (Internship/Full time)

Slide 3

Slide 3 text

Review pls

Slide 4

Slide 4 text

Today's Agenda ● ทําไม Docker ถึงเปนที่นิยม ● การติดตั้งโปรแกรมจาก Docker Hub ● การสราง Docker Image จากโปรแกรมของตัวเอง ● การใชงาน Docker Compose

Slide 5

Slide 5 text

Why Docker?

Slide 6

Slide 6 text

Web A Why Docker Web B 4 5

Slide 7

Slide 7 text

Why Docker Host OS VM A VM B 4 5

Slide 8

Slide 8 text

Why Docker Host OS VM A VM B 4 5

Slide 9

Slide 9 text

Why Docker VM A 4 Docker Hub hub.docker.com

Slide 10

Slide 10 text

Why Docker - for application developer ● ควบคุม environment ไดเกือบ 100% ● ไมมีโปรแกรม/library ที่ไมเกี่ยวของ/ผิดเวอรชั่นลงอยู ● ทําซํ้าได

Slide 11

Slide 11 text

Running application from Docker Hub

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Running application from Docker Hub Linux: http://172.17.0.2:2368 Windows/Mac: หา IP จากใน Docker for Mac/Windows

Slide 14

Slide 14 text

Running application from Docker Hub ถาใช Docker บนระบบที่ไมใช Linux ตัว Docker จะรันอยูบน VM ที่รัน Linux เวลาจะเขาตองเปด port เสมอ $ docker run -p 80:2368ghost (แปลวาให Port 80 ตรงกับ port 2368 ภายใน Image) เสร็จแลวเขาที่ http://localhost

Slide 15

Slide 15 text

Making your own image ดาวนโหลดแอพที่ https://github.com/whs/docker-course-2018 ลองรันในเครื่องดู $ npm i $ node . ถาทําเสร็จแลว ลองแกะโคดอานดูกอน

Slide 16

Slide 16 text

Writing Dockerfile ไดเวลาเขียน Dockerfile!

Slide 17

Slide 17 text

Build & Run $ docker build -t imagename . $ docker run --init -p 80:3000 imagename

Slide 18

Slide 18 text

Run with environment ในโคดจะมีการอาน process.env.TEXT เพื่อใหเราสามารถกําหนดตัวแปรขณะรันได $ docker run --init -p 80:3000 -e "TEXT=Hello Docker" imagename

Slide 19

Slide 19 text

Docker Compose ในโปรแกรมจริง ลงแค Node.js อยางเดียวไมพอ อาจจะตองมี MySQL, Redis, ฯลฯ เพิ่ม ไปอีกดวย แต Docker ใหรันไดเพียงโปรแกรมเดียว จึงมีโปรแกรม Docker Compose เขามากําหนดการวาง container หลายๆ ตัว

Slide 20

Slide 20 text

Docker Compose เขียน compose กัน!

Slide 21

Slide 21 text

Docker Compose $ docker-compose up -d $ docker-compose down

Slide 22

Slide 22 text

Next step ● Docker Compose นั้นนิยมใชกับระบบขนาดเล็กในเครื่องเดียว ● สําหรับระบบ server ที่มีเครื่องจํานวนมากจะใช Kubernetes ซึ่งจะมีการจัดสรร ทรัพยากรใหดวย ● To be continued