Resource management in Docker

In this blog post I would like to touch on the topic of resource management for Docker containers. It is often unclear how it works and what we can and cannot do. I hope that after reading this blog post resource management will be a bit easier for you to understand. Note I assume that you are running Docker on a systemd enabled operating system. If you are on RHEL/CentOS 7+ or Fedora 19+ this is certainly true. But please note that there can be some changes in the available configuration options between different systemd versions. When in doubt, use the systemd man pages for the system you work with. ...

September 11, 2014 · 14 min

Runninng Docker containers as systemd services

Starting and stopping Docker containers is easy with the docker run and docker {stop|kill} commands. By default, when the Docker daemon is restarted, running containers are also restarted. This is a great feature but sometimes you need more control over the container’s lifecycle. Imagine having a container which is linked to another one. Docker does not provide any way of specifying which container should be started when or what to do if a container dies. ...

July 30, 2014 · 6 min

Customizing the configuration of the WildFly Docker image

Default configuration is a great place to start with a project. We at JBoss try to make our projects (and products too!) usable out-of-box for as many use cases as we can, but there is no way that one configuration could satisfy everyone’s needs. For example, we ship 4 flavors of the standalone.xml configuration file with WildFly since there are so many different deployment scenarios. But this is still not enough. We need to be able to tweak it at any point. The jboss/wildfly image is not an exception here. ...

July 23, 2014 · 7 min

Logging with the WildFly Docker image

There are various ways to set up logging for Docker containers. Docker itself has a built-in logs command, you can mount a volume from the host and save the logs there, you can create a different container that would be only responsible for log handling, or set up a logging daemon. Every method has some pros and cons and it is up to you to choose the one that fits best. ...

July 18, 2014 · 11 min

JBoss projects as Docker images

I recently announced the availability of the official WildFly Docker image. Since then, our portfolio of images has grown a bit - as of today, we have 8 images. But this is not the end. We want to have a nice collection of JBoss projects shipped as Docker images. Automated builds All of our images are hooked up to automated builds. When we push an update to the repository, a new image will be created and pushed to the global registry. I also set up links between the images so if a base image is updated, our dependent images will be rebuilt. This is a fully automated process that ensures you get the latest available software. ...

July 8, 2014 · 2 min

Creating a minimal WildFly Docker image

The default way of creating an image with Docker is to extend an image by using the FROM call in the Dockerfile. But this is not the only way to do this. You can easily create a base image by using only the yum command. WildFly 8.0.0.Final was recently released and is now available in Fedora 20 updates-testing repository. Let’s create an image that could be used to test this release but make it as minimal as it could be. The application server does have a lot of dependencies, so do not expect a 100 MB image. It’ll be closer to 1 GB. ...

March 6, 2014 · 3 min

Assigning IP addresses to Docker containers via DHCP

Warning This guide is based on an old version of Docker. The instructions you find below may be already removed or changed in the Docker codebase. In my last blog post I explained how to run a Docker installation across multiple hosts. In the comments I was asked if it would be possible to use a DHCP server to assign IPs to the containers. I thought immediately — why not? In fact, assigning IPs using DHCP is a nice way to overcome the IP assignment issue I talked about before. ...

January 30, 2014 · 8 min

Connecting Docker containers on multiple hosts

Warning This guide is based on an old version of Docker. The instructions you find below may be already removed or changed in the Docker codebase. In my previous blog post I talked about running the Fedora Cloud images on a local KVM with libvirt. This was not a standalone task, but rather the preparation for this blog post: running Docker containers on multiple hosts attached to the same network. I was asked in the comments on my WildFly cluster based on Docker blog post if it would be possible to run a cluster on multiple hosts. I found a very nice tutorial written by Franck Besnard. I’ve decided to set up a similar environment on my own to see how/if it works. ...

January 21, 2014 · 9 min

Even more Docker - Fedora news

It has been a while since my last blog post about recent Docker changes in Fedora. We’ve done some significant work over the last three weeks. Now it’s time to wrap it up. Docker is available in the repositories Now you can enjoy Docker on your Fedora system by executing just one command: yum install docker-io If you’re on RHEL/CentOS you still need to enable epel-testing repository. This shouldn’t be necessary once the lxc package will be available in stable. ...

December 3, 2013 · 2 min

Developing with WildFly, JBoss Developer Studio and Docker

What and why I am always sad seeing all the potential damage done to your local system, just to set up your development environment. Every time you do almost the same thing, every time you mess your system up in almost the same way. It really doesn’t matter in which language you’re wrtiting and what frameworks you use but Java (and Maven) is a pretty good, uhm, example. A development environment is not only about IDE and JDK, in almost all cases we need to have an application server too. We set it up; our application works great on it, but when we deploy it to production we experience deployment issues. Some things changed: we have different JDK, different network interfaces and so on. Everything can affect your application. ...

November 20, 2013 · 6 min