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
Schnelldurchlauf Docker
Search
berndfischer63
November 06, 2014
Programming
0
43
Schnelldurchlauf Docker
DevOps - Continuous Delivery mit Jenkins und Docker
JUG Saxony, 06. November 2014
berndfischer63
November 06, 2014
Tweet
Share
More Decks by berndfischer63
See All by berndfischer63
Docker in Software Development - Current State
berndfischer63
1
150
Docker in der Java-Entwicklung
berndfischer63
0
65
Demystifying Docker
berndfischer63
0
570
Softwareentwicklung für das Internet der Dinge
berndfischer63
0
41
Other Decks in Programming
See All in Programming
SOCI Index Manifest v2が出たので調べてみた / Introduction to SOCI Index Manifest v2
tkikuc
1
110
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
13
2.8k
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
8
3.2k
AIコーディングAgentとの向き合い方
eycjur
0
240
CSC305 Summer Lecture 06
javiergs
PRO
0
100
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.8k
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
The State of Fluid (2025)
s2b
0
200
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.6k
ゲームの物理
fadis
5
1.5k
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
210
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
510
Featured
See All Featured
Designing for Performance
lara
610
69k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
How STYLIGHT went responsive
nonsquared
100
5.7k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Into the Great Unknown - MozCon
thekraken
40
2k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Navigating Team Friction
lara
189
15k
Producing Creativity
orderedlist
PRO
347
40k
Being A Developer After 40
akosma
90
590k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Transcript
None
06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 2'
Container'vs'VM' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 3' Virtual'Machine' App'A' RunIme' Guest'OS' App'B' RunIme'
Hypervisor'/'Host'OS' Physical'Server' Docker' Docker' App'A' RunIme' App'A' RunIme' Docker'Engine' Host'OS' Physical'Server'
Docker'Components' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 4' Union'/'Layer'FS' CGroups' Namespaces' Libcontainer'(LXC,'…)' Docker' Linux'Kernel'
Windows' Docker'Architecture' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 5' Docker'Client' Docker'Client' Mac'OS'X' Docker'Client' Docker'Host'(Linux)'
Docker'Client' Docker'Daemon' RESTful'API' Socket' Docker'Container' Docker'Container' Docker'Container' Docker'Container'
Docker'Images'&'Container' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 6' boobs' kernel' cgroups,'namespaces,'device'mapper' base'image' ubuntu' image'
image' writable'container' add'java' add'tomcat' Image'(ro)' Container'
docker'info' • InformaIonen'about'Docker'and'environment' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 7'
docker'info' • InformaIonen'about'Docker'and'environment' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 8'
docker'ps'()a)' • list'container'and'status' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 9'
docker'run' • run'a'process'(inside'container:'in'foreground)' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 10'
docker'run')it' • run'command'in'a'container'interacIve' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 11'
docker'run')d' • run'command'in'a'container'daemonized' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 12'
docker'start/stop' • start/stop'a'container' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 13'
docker'exec' • execute'command'in'running'container' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 14'
docker'images'()a)' • list'images'(local'registry/repository)' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 15'
Dockerfile' • describes'how'to'build'a'Docker'image' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 16'
docker'build' • build'a'Docker'image' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 17'
Docker'grafisch')'DockerUI' • analog'CLI'nur'grafisch';))' • hkps://github.com/crosbymichael/dockerui' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 18'
UND$DAMIT$ZURÜCK$ZU$NICO$…$ 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 19'
Schnelldurchlauf'Docker' Fortsetzung'
Development'with'Docker' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 21' Acceptance'Tests' Performance'Tests' ExploraIve'Tests' ProdukIon' build' Docker'Repository'
Development'with'Docker' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 22' docker build –tag=image_under_test .! docker run
–name=c01 –d –P image_under_test! ! # do something more or less useful ! # aka testing! ! docker stop c01! docker rm c01!
Dockerhub' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 23'
Private'Registry' • docker'run'–d'–p'5000:5000'//name=repo' registry' • docker'run'/d'/p'9080:8080'//name=repo/ui' atcol/docker/registry/ui' ' • http://192.168.59.103:5000''
• http://192.168.59.103:5000/v1/search' • http://192.168.59.103:9080/repository/index'' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 24'
Private'Registry' • docker'tag'befi/sshd' 192.168.59.103:5000/befi/sshd' • docker'push'''''''''''''' 192.168.59.103:befi/sshd' ' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony'
25'
Container'ConfiguraIon' • docker'run'–d'' /e'MYSQL_ROOT_PASSWORD=secret' /e'MYSQL_USER=username' /e'MYSQL_PASSWORD=usersecret' /e'MYSQL_DATABASE=db_name' mysql' ' 06.11.2014'
T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 26'
Docker'and'Persistent'Data' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 27' • sharing'files'and'folder'with'host' • data'container'
Docker'and'Persistent'Data' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 28' • sharing'files'and'folder'with'host' ' )v'$(pwd)/html:/usr/share/nginx/html'
Docker'and'Persistent'Data' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 29' • data'container' ' ))volumes)from=nginx''
Linking'Containers' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 30' ))link=<source_container>:<alias>' ))link=mysql:mysql'' mysql::mysql' ' Environment)Variables:' '
MYSQL_USER' MYSQL_PASSWORD' MYSQL_DATABASE' befi/jugdemo::jugdemo' ' Environment)Variables:' ' MYSQL_ENV_MYSQL_USER' MYSQL_ENV_MYSQL_PASSWORD' MYSQL_ENV_MYSQL_DATABASE' LINK'
Linking'Container' • Beispielprojekt:'Java')>'MySql)DB' • MySql' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 31' docker'run'//name=mysql' '/e'MYSQL_ROOT_PASSWORD=9876'
'/e'MYSQL_USER=test' '/e'MYSQL_PASSWORD=1234' '/e'MYSQL_DATABASE=jugdemo' '/d'/P'mysql'
Linking'Container' • Beispielprojekt:'Java')>'MySql)Database' • Spring'Boot' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 32'
UND$DAMIT$ZURÜCK$ZU$NICO$…$ 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 33'
Schnelldurchlauf'Docker' Arbeitsumgebungen'für'Developer'
Boot2Docker' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 35' Virtual'Machine' Linux'with'Docker'Daemon' Docker' Container' Docker' Container'
Vagrant'&'Docker' • on'non)Linux)Systems'based'on'Boot2Docker' • provider' – build'images'and'run'container' • provisioning' – build'images'and'run'container' – install'Boot2Docker'…'
• Einbindung'in'den'“Arbeitszyklus”'nicht'sehr' effekIv'(vagrant'reload/provision)' ' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 36'
Vagrant'&'Docker' • Beispiel:'jugdemo' • Auszug'“vagranbile”' ' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 37'
Packer'&'Docker' • build'and'handle'images'without'Dockerfiles' ' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 38' {! “type”: “docker”,!
“image”: “ubuntu”,! “export_path”: “image.tar”! }{! “postprocessors”: [[! {! “type”: “docker-tag”, ! “repository”: “befi/packer”, “tag”: “0.1”! }! “docker-push”! ]]! }!
Fig' • OrchestraIon'(helper)'for'Docker' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 39' Bsp.:'Java')>'MySql)Database'
Summary'for'Developer' • fast'and'simple' • bash'scripIng'should'be'your'friend'…'!' • “plain”'Docker'for'simple'use'cases'only' • separaIon'of'code'and'data/status' – Immutable'Infrastructure/Phoenix'Server'
• separaIon'of'funcIonality' – ApplicaIon,'Logging,'Backup,'…' • microservices'…' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 40'
Schnelldurchlauf'Docker' Plawormen'
CoreOS' • minimal'OperaIng'System'(should'be'able'to'run' Docker'+'Container)' • painless'UpdaIng' • designed'for'Docker'Container' • clustered'by'default'
– etcd,'systemd,'fleet' • distributed'system'tools' – distributed'locking,'master'elecIon' • service'discovery' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 42'
and'more'…' • OpenStack'(i.e.'Ubuntu'Hypervisor)' • CloudFoundry' • Kubernetes' • …' •
Partnerschayen'mit' – Microsoy,'' – Google'(Ankündigung'auf'Cloud)Konferenz),'' – …' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 43'
VIELEN$DANK$FÜR$IHRE$ AUFMERKSAMKEIT!$ Fragen?' 06.11.2014' T)Systems'MMS'+'MindApproach'für'JUG'Saxony' 44'