Next, I've done a more in-depth study of software provisioning with tools like Puppet, Chef and Ansible. I wonder if it makes sense to use them with Docker?
Next, I've done a more in-depth study of software provisioning with tools like Puppet, Chef and Ansible. I wonder if it makes sense to use them with Docker?
On the host side it makes sense. You can find puppet modules to manage Docker containers.
On the client side, there is nothing yet very definite. There are basically two situations where configuration management can be used:
As an example, one can imagine a Dockerfile where the puppet is used, without the master, to execute some configurations of the container (construction moment):
# Aqui é considerado que há uma imagem Centos com o Puppet disponível
FROM centos:puppet
ADD conf /etc/puppet/
RUN puppet apply -v -e 'include tomcat7_rhel'
Using such a tool at the time of startup or even at runtime can be useful if you need to run some very complicated environment setup.
It is still far from a consensus on the subject. Anyway, this entails splitting the classes / cookbooks to clearly separate in two runs, which is a great refactoring.
If you already have the recipes / modules ready, it might make sense, but if you still build, I do not see much need.
The idea of docker is to be as simple and declarative as possible, so making Dockerfile would be enough for your demands. Remember that Docker is not a lightweight virtual machine but a process running in a self-contained environment.