Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Docker
Search
Yukiyan
October 16, 2015
Programming
5.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Docker
社内勉強会(2015/10/16)
Yukiyan
October 16, 2015
More Decks by Yukiyan
See All by Yukiyan
Introduction to Scala about type parameter
yukiyan
0
170
Introduction to Scala
yukiyan
0
110
digdagで支えるデータパイプライン / Building a data pipeline with digdag
yukiyan
1
5.9k
機械学習基盤を一人で構築するということ / Hitori ml team
yukiyan
3
3.7k
ECSのデプロイツールを試している話
yukiyan
0
2.5k
Replace a batch application to ECS
yukiyan
1
1.6k
Other Decks in Programming
See All in Programming
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
460
What We Talk About When We Talk About XP
m_seki
2
370
信頼性の目標を誰も求めてない
shubox
0
490
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
430
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
1
490
初めての模倣学習とVLA
natsutan
0
490
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
380
業務時間外もAIに働いてもらう話
colorful12
3
10k
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
140
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Producing Creativity
orderedlist
PRO
348
41k
Between Models and Reality
mayunak
4
450
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Mind Mapping
helmedeiros
1
350
YesSQL, Process and Tooling at Scale
rocio
174
15k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Transcript
Introduction to Docker
Why choose this topic?
Big Wave Coming
Big Wave in ࣾ • Docker swarmͷػӡ • Docker࣮ફೖ(Dockerຊ)ͷ·Γ •
ͷνʔϜʹDocker৬ਓ͕͍Δ
Big Wave in the ੈք • Dockerʹؔ࿈༷ͨ͠ʑͳπʔϧͷొ • Docker Machine
• Docker swarm • Docker compose
·͍ͣ
Goal • DockerͷಛɾརΛཧղ͢Δ͜ͱ • DockerfileΛॻ͍ͯϏϧυ͢Δ·Ͱͷ؆୯ͳྲྀΕΛཧղ͢Δ ͜ͱ • Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳɾϓϩηεཧ
DockerͷಛɾརΛ ཧղ͢Δ
What is Docker?
What is Docker? • Dockerࣾ ͕ΦʔϓϯιʔεͰެ։͍ͯ͠Δɺίϯςφٕज़ʹ ΑΔԾԽιϑτΣΞ • LXC(Linux Container),
AUFS(Another Union FS) • Vagrantͱൺֱͯ͠ىಈ͕͍ɻ
What is Container?
※ ※ ը૾Ҿ༻ݩ: http://www.slideshare.net/TrisM/docker-41045742 P22
Benefit • σϓϩΠ͕खܰʹͳΔ • εέʔϥϏϦςΟɾߴޮɾ൚༻ੑ
Use Case • ΞϓϦέʔγϣϯ • DB • Ϗϧυڥ • ͍Ζ͍ΖͳΜͰ
※ ※ ը૾Ҿ༻ݩ: http://www.slideshare.net/TrisM/docker-41045742 P22
DockerfileΛॻ͍ͯϏϧ υ͢Δ·Ͱͷ؆୯ͳྲྀΕ Λཧղ͢Δ
flow 1. Dockerfileॻ͘ 2. Ϗϧυ͢Δ 3. docker run͢Δ 4. ϨδετϦpush
1. Dockerfileॻ͘ FROM yukiyan_w/centos:centos6 MAINTAINER Yuki Wakayama RUN yum -y
install httpd RUN echo 'Hello, World!!' > /var/www/html/index.html ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh CMD ["/usr/local/bin/init.sh"]
#!/bin/bash service httpd start /bin/bash
2. Ϗϧυ͢Δ docker build -t yukiyan_w/apache:ver1.0 . Πϝʔδ͕Ͱ͖Δ docker@dev:~$ docker
images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE yukiyan_w/apache ver1.0 e0bd562a2d43 1 days ago 264.1 MB yukiyan_w/centos centos6 a005304e4e74 1 days ago 203.1 MB
3. docker run͢Δ docker run -itd -p 8000:80 --name apache01
yukiyan_w/apache:ver1.0 ಈ͍ͯΔ͔֬ೝ docker@dev:~$ docker attach apache01 [root@3a607e0dd9f9 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:09 ? 00:00:00 /bin/bash /usr/local/bin/init.sh root 17 1 0 15:09 ? 00:00:00 /usr/sbin/httpd root 19 1 0 15:09 ? 00:00:00 /bin/bash apache 20 17 0 15:09 ? 00:00:00 /usr/sbin/httpd apache 21 17 0 15:09 ? 00:00:00 /usr/sbin/httpd apache 22 17 0 15:09 ? 00:00:00 /usr/sbin/httpd root 36 19 0 15:10 ? 00:00:00 ps -ef
4. ϨδετϦpush docker push yukiyan_w/apache
flow • Dockerfileॻ͘ɺϏϧυ͢Δɺ docker runɺ͍͡Δɺcommitɺtag ͚ͭΔɺϨδετϦ • DockerHub͔Βpull͢Δɺdocker runɺ͍͡Δɺcommitɺtag͚ͭΔɺ ϨδετϦ
※ ※ ը૾Ҿ༻ݩ: http://www.slideshare.net/TrisM/docker-41045742 P22
Cache for Faster Builds • DockerΠϝʔδΛࠩཧͯ͠ΔͷͰϏϧυ͕ૣ͍
docker build -t yukiyan_w/apache:ver1.0 . Step 0 : FROM yukiyan_w/centos:centos6
centos6: Pulling from yukiyan_w/centos Status: Downloaded newer image for yukiyan_w/centos:centos6 ---> a005304e4e74 Step 1 : MAINTAINER Yuki Wakayama ---> Running in 0eec2e2e93d1 ---> 2477c45cfa23 Removing intermediate container 0eec2e2e93d1 Step 2 : RUN yum -y install httpd ---> Running in 9dd64b9d2aeb ---> c09ed7b982db Removing intermediate container 9dd64b9d2aeb Step 3 : RUN echo 'Hello, World!!' > /var/www/html/index.html ---> Running in b8972fb573a7 ---> 9cd9b8077c76 Removing intermediate container b8972fb573a7 Step 4 : ADD init.sh /usr/local/bin/init.sh ---> 998ad3b60ab3 Removing intermediate container 23e41b8192c4 Step 5 : RUN chmod u+x /usr/local/bin/init.sh ---> Running in 2be75c857f5c ---> 5726cae34e32 Removing intermediate container 2be75c857f5c Step 6 : CMD /usr/local/bin/init.sh Successfully built e0bd562a2d4
ͪΐͬͱม͑Δ FROM yukiyan_w/centos:centos6 MAINTAINER Yuki Wakayama RUN yum -y install
httpd RUN echo 'Hello, World!!' > /var/www/html/index.html ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh + RUN echo 'Hello, World!!' CMD ["/usr/local/bin/init.sh"]
Step 0 : FROM yukiyan_w/centos:centos6 ---> a005304e4e74 Step 1 :
MAINTAINER Yuki Wakayama ---> Using cache ---> 2477c45cfa23 Step 2 : RUN yum -y install httpd ---> Using cache ---> c09ed7b982db Step 3 : RUN echo 'Hello, World!!' > /var/www/html/index.html ---> Using cache ---> 9cd9b8077c76 Step 4 : ADD init.sh /usr/local/bin/init.sh ---> Using cache ---> 998ad3b60ab3 Step 5 : RUN chmod u+x /usr/local/bin/init.sh ---> Using cache ---> 5726cae34e32 Step 6 : RUN echo 'Hello, World!!' ---> Running in 4191d60ea4b0 Hello, World!! ---> c87043d1219f Removing intermediate container 4191d60ea4b0 Step 7 : CMD /usr/local/bin/init.sh ---> Running in 52aef5dab4ce ---> 042133d33472 Removing intermediate container 52aef5dab4ce Successfully built 042133d33472
!
But ⾠
yum update໋ྩΩϟογϡ͞ΕΔͷͰ`--no-cacheͱ͔͠ͳ ͍ͱ࣍ճϏϧυ࣌ʹ࠷৽ͷঢ়ଶʹΞοϓσʔτ͞Εͳ͍
Progress • DockerͷಛɾརΛཧղ͢Δ͜ͱ Done ✅ • DockerfileΛॻ͍ͯϏϧυ͢Δ·Ͱͷ؆୯ͳྲྀΕΛཧղ͢Δ ͜ͱ Done ✅
• Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳɾϓϩηεཧ
ਫΛҿΉ࣌ؒ !
Dockerʹ͓͚ΔσΟεΫΠϝʔδཧ ػೳɾϓϩηεཧ
σΟεΫΠϝʔδཧػೳ
͖ͬ͞ɾɾɾ
FROM yukiyan_w/centos:centos6 MAINTAINER Yuki Wakayama RUN yum -y install httpd
RUN echo 'Hello, World!!' > /var/www/html/index.html ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh CMD ["/usr/local/bin/init.sh"] ↓ docker build -t yukiyan_w/apache:ver1.0 .
FROM yukiyan_w/centos:centos6 DockerfileͰॻ͍ͯΔ͚ͲɺϏϧυcentos7Ͱߦͬͨ
• ίϯςφ෦ͰCentOS6͕ήετOS ͱͯ͠ಈ͍ͯΔΘ͚Ͱͳ͍ • ίϯςφ෦ͰCentOS6ͷڥͱ ಉ͡σΟεΫͷ༰͕ݟ͑Δ • CentOS6ͷσΟεΫʹೖͬͯΔόΠ φϦ/usr/sbin/httpd͔ΒσʔϞϯ ϓϩηεΛىಈ͢Δ
ήετOSͷىಈϓϩηεΛলུͯ͠ɺ తͷΞϓϦέʔγϣϯ͚ͩىಈ ͢Δ͜ͱ͕Ͱ͖Δ
͔ͩΒ͍
Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳ Doneɾϓϩηε ཧ
ϓϩηεཧ
ෳཱͯͨίϯςφɺͦΕͧΕಠཱͨ͠ϓϩηεςʔϒϧ͕ ׂΓͯΒΕΔ
͖ͬ͞ݴͬͨ ήετOSͷىಈϓϩηεΛলུͯ͠ɺతͷΞϓϦέʔγϣϯ ͚ͩىಈ͢Δ͜ͱ͕Ͱ͖Δ
తͷΞϓϦέʔγϣϯ FROM yukiyan_w/centos:centos6 MAINTAINER Yuki Wakayama RUN yum -y install
httpd RUN echo 'Hello, World!!' > /var/www/html/index.html ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh CMD ["/usr/local/bin/init.sh"]
ήετOSͷىಈϓϩηεΛলུͯ͠ɺతͷΞϓϦέʔγϣϯ ͚ͩىಈ͢Δ͜ͱ͕Ͱ͖Δ ↓ తͷΞϓϦέʔγϣϯ͕ PID=1 Ͱىಈ͞ΕͯΔͣ
docker@dev:~$ docker run -itd -p 8000:80 --name apache01 yukiyan_w/apache:ver1.0 docker@dev:~$
docker attach apache01 [root@3a607e0dd9f9 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:09 ? 00:00:00 /bin/bash /usr/local/bin/init.sh root 17 1 0 15:09 ? 00:00:00 /usr/sbin/httpd root 19 1 0 15:09 ? 00:00:00 /bin/bash apache 20 17 0 15:09 ? 00:00:00 /usr/sbin/httpd apache 21 17 0 15:09 ? 00:00:00 /usr/sbin/httpd apache 22 17 0 15:09 ? 00:00:00 /usr/sbin/httpd root 36 19 0 15:10 ? 00:00:00 ps -ef Dockerfileͷ࠷ऴߦͷίϚϯυ͕PID=1Ͱಈ͍ͯΔʂʂ CMD ["/usr/local/bin/init.sh"]
ϗετOS͔Βݟ͑Δϓϩηε docker@dev:~$ ps -ef UID PID PPID C STIME TTY
TIME CMD ʙ(Ұ෦লུ)ʙ root 1019 1 0 06:14 ? 00:00:42 /usr/local/bin/docker daemonɹলུ root 9832 1019 0 16:54 ? 00:00:00 docker-proxy -proto tcp লུ root 9844 1019 0 16:54 pts/1 00:00:00 /bin/bash /usr/local/bin/init.sh root 9862 9844 0 16:54 ? 00:00:00 /usr/sbin/httpd root 9864 9844 0 16:54 pts/1 00:00:00 /bin/bash 48 9865 9862 0 16:54 ? 00:00:00 /usr/sbin/httpd 48 9867 9862 0 16:54 ? 00:00:00 /usr/sbin/httpd 48 9868 9862 0 16:54 ? 00:00:00 /usr/sbin/httpd docker 9882 7689 0 16:54 pts/0 00:00:00 ps -ef ίϯςφͰಈ͍ͯΔϓϩηεݟ͑Δ͚ͲɺPID͕ҧ͏ʂʂ
None
Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳ Doneɾϓϩηε ཧ Done
Progress ! • DockerͷಛɾརΛཧղ͢Δ͜ͱ Done ✅ • DockerfileΛॻ͍ͯϏϧυ͢Δ·Ͱͷ؆୯ͳྲྀΕΛཧղ͢Δ ͜ͱ Done
✅ • Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳɾϓϩηεཧ Done ✅
Summary
Summary • DockerͷಛɾརΛཧղ͢Δ͜ͱ • Vagrantͱൺֱͯ͠ىಈ͕͍ɻ • ίϯςφͷ߹ɺԾϚγϯήετOSͱ͍͏ߟ͑ํ ͋Γ·ͤΜɻ • σϓϩΠ͕खܰʹͳΔ
• εέʔϥϏϦςΟɾߴޮɾ൚༻ੑ
Summary • DockerfileΛॻ͍ͯϏϧυ͢Δ·Ͱͷ؆୯ͳྲྀΕΛཧղ͢Δ ͜ͱ 1. Dockerfileॻ͘ 2. Ϗϧυ͢Δ 3. docker
run͢Δ 4. ϨδετϦpush
Summary • Dockerʹ͓͚ΔσΟεΫΠϝʔδཧػೳɾϓϩηεཧ • ήετOSͷىಈϓϩηεΛলུͯ͠ɺతͷΞϓϦέʔ γϣϯ͚ͩىಈ͢Δ͜ͱ͕Ͱ͖Δ • ϗετOS͔Βίϯςφͷϓϩηε͕ݟ͑Δ͚Ͳɺίϯ ςφ͔ΒϗετOSͷϓϩηεݟ͑ͳ͍
Next time... • Ԡ༻తͳ෦ • σʔλͷӬଓԽ • ࢹɺϩΪϯά • ωοτϫʔΫ
• पลٕज़ • swarm, compose • k8s, ECS
Build, Run, Enjoy !
Thanks for listening!