SlideShare a Scribd company logo
1 of 23
Babel Coder
App A
glibc 2.39
App B
glibc 1.2
1. ปัญหาของเทคโนโลยี VIRTUALIZATION
Babel Coder
1. ปัญหาของเทคโนโลยี VIRTUALIZATION
Host OS
Guest OS Guest OS
App A
glibc 2.39
App B
glibc 1.2
VM 1 VM 2
Babel Coder
1. ปัญหาของเทคโนโลยี VIRTUALIZATION
Host OS
App A
glibc 2.39
App B
glibc 1.2
C 1 C 2
Docker Engine
Babel Coder
1. ปัญหาของเทคโนโลยี VIRTUALIZATION
Host OS
Docker Engine
Service A
C 1 C 2
Service B
C 2
Service B
C 2
Service B
Babel Coder
2. ประวัติย่อของเทคโนโลยีคอนเทนเนอร ์
Docker เป็ นชุดของผลิตภัณฑ์platform as a service (PaaS) ทีได้สร ้างการเปลียนแปลงในโลกของการ
พัฒนาซอฟต์แวร ์ด้วยวิธีการนําเสนอซอฟต์แวร ์ในแพคเกจทีเรียกว่าคอนเทนเนอร ์
Docker ก่อตังขึนเป็ น DotCloud ในปี 2008 โดย Solomon Hykes ทีปารีส เริมต้นจากการเป็น platform as
a service (PaaS) ก่อนทีจะเปลียนเป็นเทคโนโลยีคอนเทนเนอร ์ในปี 2013
รุ่นเริมต้นของ Docker ออกมาในวันที 20 มีนาคม 2013 ซอฟต์แวร ์ทีเป็ นตัวจัดการและหัวใจสําคัญของการควบคุม
คอนเทนเนอร ์เรียกว่า `Docker Engine` Docker เป็ นเครืองมือทีใช ้ในการทํางานอัตโนมัติของการปรับใช้แอป
พลิเคชันในคอนเทนเนอร ์ที Lightweight เพือให้แอปพลิเคชันสามารถทํางานได้อย่างมีประสิทธิภาพใน
สภาพแวดล้อมทีแตกต่างกัน
เมือ Docker ปรากฏขึนในปี 2013 คอนเทนเนอร ์ได้รับความนิยมอย่างรวดเร็ว การเติบโตของ Docker และการใช ้
คอนเทนเนอร ์ไปด้วยกัน Docker ใช ้LXC ในช่วงเริมต้นและในภายหลังได้แทนทีตัวจัดการคอนเทนเนอร ์นันด้วย
ไลบรารีของตนเองคือ libcontainer
Babel Coder
3. การทํางานของ DOCKER
$
App
80
docker run -p 5152:80 babelcoder/intro-to-devops-ui:1.0
Image
Tag
Port Mapping
Unable to find image 'babelcoder/intro-to-devops-ui:1.0' locally
1.0: Pulling from babelcoder/intro-to-devops-ui
619be1103602: Already exists
018b9065ed0d: Already exists
c3ea3344e711: Already exists
c7059f310278: Already exists
a101c9a82b88: Already exists
d6a456492aaa: Already exists
e1c681003a03: Already exists
a85ccd8c07bd: Already exists
e31596f4f45d: Already exists
Digest: sha256:fca7c993dd5c3fbe2ab3e320f4a77c049f1d475b6efbf5f249b9f668b8c68373
Status: Downloaded newer image for babelcoder/intro-to-devops-ui:1.0
HOS
T
5152
-p 5152:80
Babel Coder
docker run
ค้นหา Image บน
เครือง
มีติดตังแล้ว
หรือไม่
3. การทํางานของ DOCKER
ค้นหา Image จาก
Docker Hub
พบบน Docker
Hub หรือไม่
ดาวน์โหลด Image
ติดตัง Layers ต่าง ๆ
บนเครือง
Docker ทําการสร้าง
container จาก
Image พร ้อมเริม
ทํางาน
container ทํางาน
No
Yes
Babel Coder
3. การทํางานของ DOCKER
C1
C2
C3
Dockerfil
e
Docker Images
docker build
docker run
Babel Coder
3. การทํางานของ DOCKER
$
$
$
$
$
Unable to find image 'babelcoder/intro-to-devops-ui:1.0' locally
1.0: Pulling from babelcoder/intro-to-devops-ui
docker run -p 5152:80 babelcoder/intro-to-devops-ui:1.0
docker ps
docker stop amazing_lamarr
docker start amazing_lamarr
docker stop amazing_lamarr && docker rm
amazing_lamarr
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
625f8285698b babelcoder/intro-to-devops-ui:1.0 "/docker-entrypoint.…" 5 seconds ago Up 5 seconds 0.0.0.0:5152->80/tcp amazing_lamarr
Babel Coder
API
SITE
637
9
637
9
5152
300
0
80 5151
4. การใช้งาน DOCKER COMPOSE
redi
s
babelcoder/intro-to-devops-api
babelcoder/intro-to-devops-ui
Babel Coder
4. การใช้งาน DOCKER COMPOSE
API
SITE
637
9
637
9
5152
300
0
80 5151
redi
s
babelcoder/intro-to-devops-api
babelcoder/intro-to-devops-ui
docker-compose.yml
$ docker compose
up
Babel Coder
5. การสร ้าง DOCKER IMAGES
Dockerfil
e
Docker Images
Docker Hub
push
pul
l
buil
d
1
2
3
Laye
r
Laye
r
Laye
r
Laye
r
Babel Coder
5. การสร ้าง DOCKER IMAGES
./api
$
$
CGO_ENABLED=0 go build -o api
Babel Coder
5. การสร ้าง DOCKER IMAGES
./api
$
$
CGO_ENABLED=0 go build -o api
Dockerfil
e
Babel Coder
5. การสร ้าง DOCKER IMAGES
Cache
Docker Images
Babel Coder
5. การสร ้าง DOCKER IMAGES
Babel Coder
5. การสร ้าง DOCKER IMAGES
Babel Coder
5. การสร ้าง DOCKER IMAGES
Babel Coder
5. การสร ้าง DOCKER IMAGES
$ docker build -t babelcoder/intro-to-devops-api:1.0 .
Build
Context
REPOSITORY TAG IMAGE ID CREATED SIZE
babelcoder/intro-to-devops-api 1.0 0549c371879d 3 hours ago 17.2MB
$ docker image ls
Babel Coder
5. การสร ้าง DOCKER IMAGES
docker build -t babelcoder/intro-to-devops-api:1.0 .
$
.dockerignore
Babel Coder
6. การเผยแพร่ DOCKER IMAGES
docker login
$
Username: xxxxxx
Password: xxxxxx
Login Succeeded
docker push babelcoder/intro-to-devops-api:1.0
$
The push refers to repository [docker.io/babelcoder/intro-to-devops-api]
2174cfeeabd2: Pushed
b8d6ec71502e: Pushed
d4fc045c9e3a: Layer already exists
1.0: digest:
sha256:214d679fde8958b9ea028430aea9bea5b6c46790724422db8c3291c8e
308cb5e size: 945
Docker Hub
push
Babel Coder
6. การเผยแพร่ DOCKER IMAGES
$
Babel Coder

More Related Content

More from NuttavutThongjor1

mean stack mean stack mean stack mean stack
mean stack mean stack  mean stack  mean stackmean stack mean stack  mean stack  mean stack
mean stack mean stack mean stack mean stack
NuttavutThongjor1
 

More from NuttavutThongjor1 (20)

2 เทคโนโลยี cloud computing.pdf 2 เทคโนโลยี cloud computing.pdf
2 เทคโนโลยี cloud computing.pdf 2 เทคโนโลยี cloud computing.pdf2 เทคโนโลยี cloud computing.pdf 2 เทคโนโลยี cloud computing.pdf
2 เทคโนโลยี cloud computing.pdf 2 เทคโนโลยี cloud computing.pdf
 
1 devops คืออะไร.pdf 1 devops คืออะไร.pdf
1 devops คืออะไร.pdf 1 devops คืออะไร.pdf1 devops คืออะไร.pdf 1 devops คืออะไร.pdf
1 devops คืออะไร.pdf 1 devops คืออะไร.pdf
 
angular fundamentals.pdf angular fundamentals.pdf
angular fundamentals.pdf angular fundamentals.pdfangular fundamentals.pdf angular fundamentals.pdf
angular fundamentals.pdf angular fundamentals.pdf
 
mean stack mean stack mean stack mean stack
mean stack mean stack  mean stack  mean stackmean stack mean stack  mean stack  mean stack
mean stack mean stack mean stack mean stack
 
pinia.pdf
pinia.pdfpinia.pdf
pinia.pdf
 
nuxt-rendering-modes.pdf
nuxt-rendering-modes.pdfnuxt-rendering-modes.pdf
nuxt-rendering-modes.pdf
 
zustand.pdf
zustand.pdfzustand.pdf
zustand.pdf
 
tanstack-query.pdf
tanstack-query.pdftanstack-query.pdf
tanstack-query.pdf
 
nuxt-fundamentals.pdf
nuxt-fundamentals.pdfnuxt-fundamentals.pdf
nuxt-fundamentals.pdf
 
vue-components.pdf
vue-components.pdfvue-components.pdf
vue-components.pdf
 
vue-reactivity.pdf
vue-reactivity.pdfvue-reactivity.pdf
vue-reactivity.pdf
 
vue-template.pdf
vue-template.pdfvue-template.pdf
vue-template.pdf
 
recap-restful.pdf
recap-restful.pdfrecap-restful.pdf
recap-restful.pdf
 
nuxt-tech-stack.pdf
nuxt-tech-stack.pdfnuxt-tech-stack.pdf
nuxt-tech-stack.pdf
 
recap-js-and-ts.pdf
recap-js-and-ts.pdfrecap-js-and-ts.pdf
recap-js-and-ts.pdf
 
prisma.pdf
prisma.pdfprisma.pdf
prisma.pdf
 
fullstack-nextjs.pdf
fullstack-nextjs.pdffullstack-nextjs.pdf
fullstack-nextjs.pdf
 
angular fundamentals.pdf
angular fundamentals.pdfangular fundamentals.pdf
angular fundamentals.pdf
 
javascript for modern application.pdf
javascript for modern application.pdfjavascript for modern application.pdf
javascript for modern application.pdf
 
harmonyx.pdf
harmonyx.pdfharmonyx.pdf
harmonyx.pdf
 

4 Docker.pdf 4 Docker.pdf 4 Docker.pdf 4 Docker.pdf

  • 2. App A glibc 2.39 App B glibc 1.2 1. ปัญหาของเทคโนโลยี VIRTUALIZATION Babel Coder
  • 3. 1. ปัญหาของเทคโนโลยี VIRTUALIZATION Host OS Guest OS Guest OS App A glibc 2.39 App B glibc 1.2 VM 1 VM 2 Babel Coder
  • 4. 1. ปัญหาของเทคโนโลยี VIRTUALIZATION Host OS App A glibc 2.39 App B glibc 1.2 C 1 C 2 Docker Engine Babel Coder
  • 5. 1. ปัญหาของเทคโนโลยี VIRTUALIZATION Host OS Docker Engine Service A C 1 C 2 Service B C 2 Service B C 2 Service B Babel Coder
  • 6. 2. ประวัติย่อของเทคโนโลยีคอนเทนเนอร ์ Docker เป็ นชุดของผลิตภัณฑ์platform as a service (PaaS) ทีได้สร ้างการเปลียนแปลงในโลกของการ พัฒนาซอฟต์แวร ์ด้วยวิธีการนําเสนอซอฟต์แวร ์ในแพคเกจทีเรียกว่าคอนเทนเนอร ์ Docker ก่อตังขึนเป็ น DotCloud ในปี 2008 โดย Solomon Hykes ทีปารีส เริมต้นจากการเป็น platform as a service (PaaS) ก่อนทีจะเปลียนเป็นเทคโนโลยีคอนเทนเนอร ์ในปี 2013 รุ่นเริมต้นของ Docker ออกมาในวันที 20 มีนาคม 2013 ซอฟต์แวร ์ทีเป็ นตัวจัดการและหัวใจสําคัญของการควบคุม คอนเทนเนอร ์เรียกว่า `Docker Engine` Docker เป็ นเครืองมือทีใช ้ในการทํางานอัตโนมัติของการปรับใช้แอป พลิเคชันในคอนเทนเนอร ์ที Lightweight เพือให้แอปพลิเคชันสามารถทํางานได้อย่างมีประสิทธิภาพใน สภาพแวดล้อมทีแตกต่างกัน เมือ Docker ปรากฏขึนในปี 2013 คอนเทนเนอร ์ได้รับความนิยมอย่างรวดเร็ว การเติบโตของ Docker และการใช ้ คอนเทนเนอร ์ไปด้วยกัน Docker ใช ้LXC ในช่วงเริมต้นและในภายหลังได้แทนทีตัวจัดการคอนเทนเนอร ์นันด้วย ไลบรารีของตนเองคือ libcontainer Babel Coder
  • 7. 3. การทํางานของ DOCKER $ App 80 docker run -p 5152:80 babelcoder/intro-to-devops-ui:1.0 Image Tag Port Mapping Unable to find image 'babelcoder/intro-to-devops-ui:1.0' locally 1.0: Pulling from babelcoder/intro-to-devops-ui 619be1103602: Already exists 018b9065ed0d: Already exists c3ea3344e711: Already exists c7059f310278: Already exists a101c9a82b88: Already exists d6a456492aaa: Already exists e1c681003a03: Already exists a85ccd8c07bd: Already exists e31596f4f45d: Already exists Digest: sha256:fca7c993dd5c3fbe2ab3e320f4a77c049f1d475b6efbf5f249b9f668b8c68373 Status: Downloaded newer image for babelcoder/intro-to-devops-ui:1.0 HOS T 5152 -p 5152:80 Babel Coder
  • 8. docker run ค้นหา Image บน เครือง มีติดตังแล้ว หรือไม่ 3. การทํางานของ DOCKER ค้นหา Image จาก Docker Hub พบบน Docker Hub หรือไม่ ดาวน์โหลด Image ติดตัง Layers ต่าง ๆ บนเครือง Docker ทําการสร้าง container จาก Image พร ้อมเริม ทํางาน container ทํางาน No Yes Babel Coder
  • 10. 3. การทํางานของ DOCKER $ $ $ $ $ Unable to find image 'babelcoder/intro-to-devops-ui:1.0' locally 1.0: Pulling from babelcoder/intro-to-devops-ui docker run -p 5152:80 babelcoder/intro-to-devops-ui:1.0 docker ps docker stop amazing_lamarr docker start amazing_lamarr docker stop amazing_lamarr && docker rm amazing_lamarr CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 625f8285698b babelcoder/intro-to-devops-ui:1.0 "/docker-entrypoint.…" 5 seconds ago Up 5 seconds 0.0.0.0:5152->80/tcp amazing_lamarr Babel Coder
  • 11. API SITE 637 9 637 9 5152 300 0 80 5151 4. การใช้งาน DOCKER COMPOSE redi s babelcoder/intro-to-devops-api babelcoder/intro-to-devops-ui Babel Coder
  • 12. 4. การใช้งาน DOCKER COMPOSE API SITE 637 9 637 9 5152 300 0 80 5151 redi s babelcoder/intro-to-devops-api babelcoder/intro-to-devops-ui docker-compose.yml $ docker compose up Babel Coder
  • 13. 5. การสร ้าง DOCKER IMAGES Dockerfil e Docker Images Docker Hub push pul l buil d 1 2 3 Laye r Laye r Laye r Laye r Babel Coder
  • 14. 5. การสร ้าง DOCKER IMAGES ./api $ $ CGO_ENABLED=0 go build -o api Babel Coder
  • 15. 5. การสร ้าง DOCKER IMAGES ./api $ $ CGO_ENABLED=0 go build -o api Dockerfil e Babel Coder
  • 16. 5. การสร ้าง DOCKER IMAGES Cache Docker Images Babel Coder
  • 17. 5. การสร ้าง DOCKER IMAGES Babel Coder
  • 18. 5. การสร ้าง DOCKER IMAGES Babel Coder
  • 19. 5. การสร ้าง DOCKER IMAGES Babel Coder
  • 20. 5. การสร ้าง DOCKER IMAGES $ docker build -t babelcoder/intro-to-devops-api:1.0 . Build Context REPOSITORY TAG IMAGE ID CREATED SIZE babelcoder/intro-to-devops-api 1.0 0549c371879d 3 hours ago 17.2MB $ docker image ls Babel Coder
  • 21. 5. การสร ้าง DOCKER IMAGES docker build -t babelcoder/intro-to-devops-api:1.0 . $ .dockerignore Babel Coder
  • 22. 6. การเผยแพร่ DOCKER IMAGES docker login $ Username: xxxxxx Password: xxxxxx Login Succeeded docker push babelcoder/intro-to-devops-api:1.0 $ The push refers to repository [docker.io/babelcoder/intro-to-devops-api] 2174cfeeabd2: Pushed b8d6ec71502e: Pushed d4fc045c9e3a: Layer already exists 1.0: digest: sha256:214d679fde8958b9ea028430aea9bea5b6c46790724422db8c3291c8e 308cb5e size: 945 Docker Hub push Babel Coder