https://www.docker.com/
Docker, physics and the Industrial Revolution
1https://medium.com/@dockpit/docker-physics-and-the-industrial-revolution-e100d1a7f401#.dddl5eu4a
Motivation
• write
• once
• run
• every
• where
2http://blog.osgi.org/2014/08/is-docker-eating-javas-lunch.html
https://medium.com/@dockpit/docker-physics-and-the-industrial-revolution-e100d1a7f401#.dddl5eu4a
Aber wie ... ?	

• ... starten?
3
What is docker
4https://www.docker.com/what-docker
What is docker
IMAGE/CONTAINER:
• run/stop => container
• pull/push
• compose
• build
• one folder
pushed
pulled
pushpull
/tag
Docker Hub
Docker Host
5https://www.docker.com/what-docker
What is docker
• Docker Engine/-Host ... Runtime environment
• Docker Image ... Released, bootable app/service
• Docker Container ... Started image at host
• Docker Hub ... Release platform to share images
• Docker Tools ($docker, $docker-compose, $docker-
machine, $docker-swarm)
6https://www.docker.com/what-docker
What is docker vsVM
7https://www.docker.com/what-docker
System Architecture
172.12.0.2
Docker Container1
172.12.0.3
Docker Container2
172.12.0.X
Docker ContainerNDocker Host VM
192.168.1.168
Host OS Mac
192.168.1.100
$ docker-machine start default
$ docker run container1
$ docker run container2
...
$ docker run containerN
8https://docs.docker.com/v1.8/installation/mac/
NAT Architecture
• Host OS Network
• Host/docker0 bridge
• Container/eth0 interf.
9http://www.infrabricks.de/blog/2014/07/06/docker-entschlusselt-netzwerk/
Filesystem Architecture
$ docker run --volume=/data/:/volume/ container1
$ docker run --volume=/data/:/volume/ container2
192.168.1.168 172.17.0.3
172.17.0.2
mount [--volume=/data/:___]
10https://docs.docker.com/engine/userguide/dockervolumes/
Demo (Jenkins+Maven)
11https://docs.docker.com/compose/compose-file/
Demo (Jenkins+Maven)
$ docker run -p 8080:8080 -d --name=jenkins jenkins:1.625.2
=> open browser 'http://192.168.99.100:8080/'
<= - create job + run
$ docker stop jenkins
$ docker start jenkins
=> open browser 'http://192.168.99.100:8080/' # job noch da :)
$ docker stop jenkins
$ docker rmi jenkins
$ docker run -p 8080:8080 -d --name=jenkins jenkins:1.625.2
=> open browser 'http://192.168.99.100:8080/' # job weg :(
$ docker run -p 8080:8080 -d --name=jenkins -v `pwd`/jenkins_home/:/var/
jenkins_home/ jenkins:1.625.2
12https://docs.docker.com/compose/compose-file/
http://leipzig2	

• http://leipzig2:80
apache
• http://leipzig2:18080
jenkins
• http://leipzig2:13306
mysql
• http://leipzig2:
jira
13https://leipzig2
Links
• Docker: https://www.docker.com/
• Docker Hub: https://hub.docker.com/
• $docker: https://docs.docker.com/v1.8/reference/commandline/cli/
• $docker-compose: https://docs.docker.com/compose/compose-file/
• $docker-machine: https://docs.docker.com/machine/
• Blog: https://medium.com/@dockpit/docker-physics-and-the-
industrial-revolution-e100d1a7f401
14https://leipzig2

Docker.key