In order for Java developers to test their applications in containers they typically have to build their code, create an image and run a container. You can use the Docker command line interface to manage images and containers, but at least for me that’s often error-prone and I have to go back to my cheatsheet to find the right commands. I tried a Docker Maven plugin instead and my initial experience is very positive.
There are actually several Maven plugins for Docker. Roland Huß wrote a nice high level comparison where he explains why he created another plugin. I tried the Spotify one briefly but that one doesn’t allow running containers. The plugin from Roland rhuss/docker-maven-plugin seems very promising. Below I used it for my simple Java sample.
With the plugin you can build images and run containers and also easily remove these again which is especially important in the iterative development phase.
Build image:
> mvn docker:build
Run container:
> mvn docker:start
Stop and remove container:
> mvn docker:stop
Remove image:
> mvn -Ddocker.removeAll docker:remove
The plugin also supports to push images to other registries but I haven’t tried it yet. To find out more read the Intro and the Manual.