Tentando aprender a configuração moderna do servidor, precisa obter as camadas corretas [closed]

0

Em um servidor tradicional LAMP, temos o Linux rodando o Apache rodando MySQL e PHP.

Atualmente estou no início do processo de me ensinar uma abordagem mais moderna como um preâmbulo para me ensinar node.js. Até agora eu consegui executar o Ubuntu em uma caixa virtual, mas estou um pouco confuso com quais elementos precisam ser construídos uns sobre os outros para terminar de criar meu servidor.

Eu quero executar node.js em cima do docker usando composer, git e possivelmente redis (isso pode precisar ser um servidor separado, eu não estou totalmente claro ainda). Então eu quero uma configuração similar para executar o php / mysql para que meus aplicativos de nó também possam usar os pontos strongs dessas tecnologias. Isso parece suficientemente semelhante a um ambiente de produção para criar um bom ambiente de aprendizado.

Então, estou pensando que a estratificação correta é:

  • caixa virtual
  • executando o ubuntu com composer, git e outros utilitários instalados
  • executando uma imagem do docker
  • contendo um servidor node.js ou php / mysql conforme apropriado
  • Que por sua vez executa o código e as estruturas usuais

Isso parece certo? Eu estou mais incerto sobre o papel do docker - se ele deve conter também a imagem do Ubuntu e onde as instalações do compositor e do git devem estar sentadas (na camada do SO ou na camada docker?).

Recomendações gerais / críticas a esta configuração serão apreciadas.

    
por tracer tong 15.03.2017 / 22:03

1 resposta

0

Acho que entendo o que você está tentando realizar. Seu Virtualbox Ubuntu é o servidor principal, onde você deve ter:

  1. Docker
  2. git e todos os utilitários
  3. seu conteúdo (html, php, css, js, etc.)

O Docker permite que você instale aplicativos em contêiner, por exemplo:

  1. Nginx e php-pfm
  2. MySQL
  3. NodeJS

Você deve vê-los como aplicativos, nada mais que isso. Você deve ter um contêiner por aplicativo, portanto, quando quiser usar uma versão diferente, digamos, do MySQL, você deverá destruir o contêiner e criar um novo. Cada contêiner deve expor a porta da qual precisa ser acessada (por exemplo, porta 80 ou 443 para nginx). Além disso, o contêiner deve receber acesso a pastas no servidor principal onde os arquivos de origem residem (e são controlados por versão com git). Dessa forma, destruir um contêiner deve ser o mesmo que desinstalar um programa.

    
por 16.03.2017 / 14:44