If one thing survived all the New Year parties, it is Docker. It was hot at the end of 2014 and it looks like it is getting even hotter in 2015. And Red Hat is one of the key drivers behind the adoption of this amazing container technology. This is a short summary blog post about a bunch of resources to get you started with Java EE, WildFly and Microservices on Docker mostly collecting resources and information from the JBoss guys.
Get A First Impression - Introduction to Docker
We've published a practical introduction here before. And there's even more. You can look at Arun Gupta's introduction post about Docker basics and also refer to the official Docker User Guide.
Take the Lab - Docker for Java and Java EE Developers
If you're a Java / Java EE developer you can actually run Burr's lab on your own. It offers an intro-level, hands-on session with Docker. Guiding you all the way from installation (including boot2docker on Windows/Mac), to exploring Docker Hub, to crafting their own images, to adding Java apps and running custom containers. If you print out the Docker Common Commands Cheatsheet by Arun you're ready to go and make your first steps on your own.
Learn More - About how to use Docker on Windows with Maven
As many middleware developers are running Windows, I thought I give it a try myself and also give some more tips along the way about how to build and run images with the least possible amount of struggle with Docker containers, hosts and guests, networking, NAT and command line options.
Get Your Hands Dirty - Working With Docker Images
Now that you've learned how to manage the basics, it is time to either create your own images the Docker-way and push them to the Registry. If you're struggling with multiple images and dependencies on your machine it is handy to know how to remove them.
Java EE 7 with WildFly on Docker
Talking about Java EE 7 means, that at the moment, we can't look at JBoss EAP but thankfully we have the Community Edition named JBoss WildFly. So, let's just use this while we're waiting for the supported solution to catch up. The Java EE 7 Hands-on Lab has been delivered all around the world and is a pretty standard application that shows design patterns and anti-patterns for a typical Java EE 7 application. Arun Docker-ized it.
A pretty standard setup is to have different containers for your database and your Java EE server. Learn how to setup MySQL and WildFly on separate containers and link them. Or jump directly into setting up a WildFly cluster on OpenShift Origin v3 (which is full of Docker).
You can also have a WildFly version which contains Apache Camel as subsystem and use this instead of a plain WildFly on Origin. But you can of course also use it on plain Docker. While you're playing around with all things WildFly your also need to know how to expose the WildFly admin console.
Everything is setup now and you know how to operate your Docker containers and images, it is time to get your hands on tests. Arquillian supports Docker with the Cube extension.
Even More JBoss Technologies on Docker
Did you know, that we have a microsite about the available Docker images for our JBoss projects? We just love the idea behind Docker and want to make it really easy for you to just use our projects. If you want to contribute, feel free to fork and send pull requests to any of the official jboss-dockerfiles on GitHub.
Integration Technologies on Docker
Did you know, that you can also run Apache Camel in the Belly of the Docker Whale? Henryk did this great ApacheCon presentation about that:
And there is even more going on in the JBoss Fuse field. The hottest technology is fabric8. Fabric8 is an open-source integration platform for deep management of Java Containers (JVMs). It makes it really easy to provision, automate, configure, and manage from a central location with a consistent UI and UX. Does that sound familiar? You bet! And the next v2 version is based on Docker and Kubernetes, too!
Docker and JBoss - The Perfect Combination
As far as we can tell. So, make sure to watch the Virtual JBUG session with Marek Goldmann, who leads Docker related initiatives at Red Hat. In this session, right after an introduction to Docker, Marek will dive into examples showing how you can leverage this tool to create a deployment environment for your applications. You will see how to cluster JBoss EAP and deploy an application to it. Marek will share some tips and tricks too: for example how to manage logs or customize the configuration of JBoss EAP to be able to deploy your applications. If you want to, you can just deep dive into the slides or look at the code, he used to demo.