Estou acostumado com máquinas virtuais em que se roda tudo na mesma máquina. Porém o Docker é um pouco diferente. Com o Docker a boa prática é separar tudo.
Virtual Machines
Each virtual machine includes the application, the necessary binaries and libraries and an entire guest operating system - all of which may be tens of GBs in size.
ContainersE separar não é ruim, pois os chamados Containers dividem o mesmo kernel com outros containers, o que reduz o tamanho e também agiliza o processo.
Containers include the application and all of its dependencies, but share the kernel with other containers. They run as an isolated process in userspace on the host operating system. They’re also not tied to any specific infrastructure – Docker containers run on any computer, on any infrastructure and in any cloud.
O que descobri é que é possível criar um container com mais de um processo. Exemplo Mysql e Wildfly, porém a manutenção fica mais complicada e pode haver um SPOF.
Uma das minhas referências é o Arun Gupta.
Perguntei para ele se era possível criar um container com Mysql e Wildfly
“Hello Arun,E sua resposta foi essa:
Great article!
Can you tell me if it’s possible to use mysql in the same container of the wildfly without link containers?
Thanks”
“Guilherme,
Docker containers does one thing, and they do that well. So unless you start MySQL embedded within your application, it would not be possible to run MySQL and WildFly together in the same container.
Either way, using MySQL in the same container as WildFly is not a recommended design pattern as that creates a SPOF for your application.”
O que ele disse: “Containers do Dock fazem uma coisa e fazem bem. Então a menos que o MySQL seja embutido com a aplicação, não será possivel rodar o MySQL e Wildfly juntos no mesmo container.
De qualquer jeito usar MySQL no mesmo container que o WildFly não é um padrão, pois pode criar um SPOF para sua aplicação.”
SPOF significa: single point of failure
https://en.wikipedia.org/wiki/Single_point_of_failure
é uma parte do sistema que se falhar, o sistema inteiro irá parar de funcionar.
Ter containers separados pode parecer ruim pois você irá ter que subir separadamente cada um. Realmente pode parecer, mas existe o Docker compose que é possível subir mais de um container ao mesmo tempo.
Essa era um dúvida inicial, ter containers separados ou um único.
Também é possível ver as boas práticas neste link: https://docs.docker.com/articles/dockerfile_best-practices/
Conclusão:
“Run only one process per container”
Rode apenas um processo por container.
De qualquer jeito usar MySQL no mesmo container que o WildFly não é um padrão, pois pode criar um SPOF para sua aplicação.”
SPOF significa: single point of failure
https://en.wikipedia.org/wiki/Single_point_of_failure
é uma parte do sistema que se falhar, o sistema inteiro irá parar de funcionar.
Ter containers separados pode parecer ruim pois você irá ter que subir separadamente cada um. Realmente pode parecer, mas existe o Docker compose que é possível subir mais de um container ao mesmo tempo.
Essa era um dúvida inicial, ter containers separados ou um único.
Também é possível ver as boas práticas neste link: https://docs.docker.com/articles/dockerfile_best-practices/
Conclusão:
“Run only one process per container”
Rode apenas um processo por container.