2
?
Just a light
weight VM?
This is a VM
And these are containers
Architectural differences
server
host OS
hypervisor (VMWare)
guest
OS
guest
OS
guest
OS
bins/
libs
bins/
libs
bins/
libs
App A App A’ App B
server
host OS
hypervisor (VMWare)
guest
OS
guest
OS
guest
OS
bins/
libs
bins/
libs
bins/
libs
App A App A’ App B
bins/libs
Docker
Containers are isolated, but share OS
and, where appropriate, bins/libraries
… result is significantly faster deployment, much less
overhead, easier migration, faster restart
•You can put anything in there
•Stays locked
•Efficient transport
•No missing dependencies during deployments
•You can run various versions of libraries
•Reduce compatibily concerns
Pros of a Docker Container
•Self contained - everything you need is in …
•an isolated environment
•and therefore highly portable
•it runs everywhere - also in the cloud
•it is (relatively) small and lightweight
•therefore very scalable
•and thus cost-efficient.
So it’s not (just) aVM. It is a …
Software Delivery PlatformSoftware
Delivery
Platform
It starts with an imageIt all starts with an image
docker pull mysql
docker image
• A filesystem and parameters to use it at runtime (dockerfile)
• It doesn't have state
• All layers are readonly
• Layers are shared between images
• Update requires just a download of the new layer
• “docker commit” to "save" changes,
• add a new layer
• create a newer image
OS
MySQL
App
docker images
• A (running) instance of an image
• Adds a read/write layer on top of the image
• Image is not cloned
• Spin up dozens of containers
readonly
docker container
OS
MySQL
App
C1
read
write
C2
read
write
C3
read
write
docker run hello-world
docker run -it ubuntu
-i : interactive
-t : tty
docker run
-d
-p 5000:5000
--name catweb
mikegcoleman/catweb
-d : detach
-p : port forwarding
-- name
docker ps
docker container stop [id]
docker container start [id]
docker container attach [id]
recap ….
docker pull [image]
docker images
docker run [image]
docker container stop / start / attach
docker ps
docker search [something]
docker run
-it
-v /Users/Roel/docker/ubuntu:/tmp
ubuntu
CLI or GUI
Relationship between
Oracle and Docker?
docker search apex
docker run
-d
--name apex51
-p 49160:22 -p 8080:8080 -p 1521:1521
-v /Users/Roel/docker:/tomcat/webapps/i/host
araczkowski/oracle-apex-ords
APEX & Docker - Multiple containers
DB
Storage
ORDS
WebSocket
server
A.O.P. etc..
docker compose
docker swarm
Docker take aways
• Perfect for creating independent building blocks for your app
• Perfect for simple software delivery
• Invest some time to get acquainted with the architecture
• Ideal replacement of your local developmentVM
• Oracle’s support is growing
Hier geht es zur
Vortragsbewertung:
apex.doag.org
http://bit.ly/2pzP15a
Vielen Dank!
@roelh
roel@apexconsulting.nl
http://www.apexconsulting.nl
Copyright © 2017 APEX Consulting

Docker for Dummies