<p>We are currently moving towards microservices with Docker from a monolith application running in JBoss. I want to know the platform/tools/frameworks to be used to test these Docker containers in developer environment. Also what tools should be used to deploy these containers to this developer test environment.</p>

<p>Is it a good option to use some thing like Kubernetes with chef/puppet/vagrant?</p>

<p>I think so. Make sure to get service discovery, logging and virtual networking right. For the former you can check out skydns. Docker now has a few logging plugins you can use for log management. For virtual networking you can look for Flannel and Weave.</p>

<p>You want service discovery because Kubernetes will schedule the containers the way it sees fit and you need some way of telling what IP/port your microservice will be at. Virtual networking make it so each container has it's own subnet thus preventing port clashes in case you have two containers with the same ports exposed in the same host (kubernetes won't let it clash, it will schedule containers to run until you have hosts with ports available, if you try to create more it just won't run).</p>

<p>Also, you can try the built-in cluster tools in Docker itself, like docker service, docker network commands and Docker Swarm.</p>

<p>Docker-machine helps in case you already have a VM infrastructure in place.</p>
