Messaging with 
Brought to you by Henryk Konsek
What is... 
Engine for running and managing Linux 
containers.
What are Linux containers? 
Para-virtualized Linux instances.
Docker == LXC ? 
● Docker used to be based on LXC (LinuX 
Containers) 
● but not anymore 
● now Docker provides custom API over 
cgroups and stuff
Why not regular virtualization? 
● slooooooow 
● gigantic images 
● aggresive resource allocation 
● bad API
Key concepts 
● image (immutable, no state) 
● container (has state) 
● parent images (layers)
Docker awesomeness #1 
Commands.
Docker awesomeness #2 
+WAR 
+Tomcat 
+JRE 
Ubuntu base 
Layers.
Docker awesomeness #3 
Repositories.
Dockerfiles 
FROM ubuntu 
EXPOSE 8080 
RUN sudo apt-get install java 
RUN wget http://maven.app.com/app.jar 
ENTRYPOINT java -jar app.jar 
“Recipes” for the new images.
Create new image in local repo 
$ docker build -t app/app-1.0 
$ docker run app/app-1.0
Docker == deployment 2.0 
● create single image 
● move it between environments (dev, QA, 
production)
Deployment 2.0
Dockerize everything
Single box problem 
You can’t deploy everything to the single box.
Single box problem solution 
We need kinda proxy aggregating many Docker servers.
Docker aggregators 
● libswarm 
● flocker
Messaging and Docker
Docker routers 
● the same role as OSGi bundles 
● no VM transports 
● communication usually via REST or JMS
“Bootified” & “Dockered” Camel 
routers 
● You need a bootstrap logic 
● Spring Boot can scan classpath to find new 
routes 
● Fuse 6.2 Fabric8 comes with Spring Boot 
Camel support
Docker future at Fabric8 
Docker will become the recommended target 
container.
Docker future at Red Hat 
Docker images will be a standard way to 
distribute middleware products.
Docker ecosystem future #1 
(Red Hat’s) Project Atomic.
Docker ecosystem future #2 
(Red Hat’s) Geard.
Thank you!

Messaging with the Docker