Executando várias instâncias do Nginx e do MySQL em contêineres do Docker

1

Alguém poderia me dizer se estou usando corretamente o fluxo de trabalho do Docker?

Após ler sobre o Docker e fazer alguns breves tutoriais, vejo que você pode isolar serviços e aplicativos em seus contêineres. Por fim, eu adoraria substituir a virtualização pelo Docker, mas talvez eu leve isso um pouco longe demais.

Eu faço desenvolvimento de aplicativos com o Laravel e implemento usando o Nginx no Ubuntu. Eu gostaria de configurar um grande VPS e compartilhar seus recursos entre 4 ou 5 aplicativos. Dessa forma eu posso manter diferentes versões do PHP e dependências e também isolar o servidor web e banco de dados (MySQL). O objetivo de fazer isso é apenas compartilhar o kernel do Linux e manter tudo relacionado a esses aplicativos em seus respectivos contêineres.

Os serviços que exigem portas (por exemplo, Nginx / MySQL) precisam ser configurados para usar números de porta não padrão para evitar conflitos? Talvez eu não esteja entendendo completamente o que o uso pretendido do Docker é, mas eu estava pensando que você tem a opção de instalar um servidor da web fora do contêiner e compartilhá-lo com todos os respectivos projetos ou instalar vários servidores web - um para cada contêiner e ajustar individualmente. Isso está correto?

    
por sparecycle 14.09.2014 / 22:41

1 resposta

1

Use um proxy frontend como o nginx (para back-ends relativamente estáticos) ou hipache (para alterar rapidamente os back-ends, por exemplo, se você substituir os contêineres a cada hora e não quiser alterar a configuração do nginx). O proxy de frontend escutará as portas 80 e 443 e redirecionará a solicitação para o backend correto. Eu corro 10 ou mais sites por trás de um único IP dessa maneira.

    
por 15.09.2014 / 00:01