Criando um LAMP com seu Docker | Tecnologia Livre
Bastante pessoas me pediram para eu criar uma documentação sobre como configurar um LAMP (Linux, Apache, Mysql e PHP) com o Docker.
Para esse tutorial usaremos o Docker e Docker-compose, mas não entremos nos detalhes básicos sobre seu uso. Caso ainda não sabia usar essas ferramentas, apresento os links abaixo para aprender as ferramentas citadas:
Para configurar um LAMP faremos o uso de um ambiente com dois containers.
Perceba que o arquivo citado cria dois serviços, um chamado web, que usa a imagem padrão do tutum para ambientes com servidor web (apache) e interpretador php há embutido.
Essa imagem web tem a pasta /app como raiz do servidor web e no docker-compose.yml citado acima é criado um mapeamento da pasta onde você está para a pasta /app dentro do container, ou seja, tudo que estiver de arquivos html ou php será interpretado pelo servidor web na porta 80, que também foi mapeada no mesmo arquivo.
Ainda no serviço web fazemos referência de link para o serviço chamado "db", ou seja, isso indica que sua aplicação deverá estar configurada para usar o hostname "db" e assim sua aplicação web poderá se conectar ao container mysql que será iniciado no serviço "db".
No serviço db realizamos algumas configurações iniciais para facilitar nosso trabalho. Primeiro criamos uma senha do root do mysql, em seguida criamos um database inicial e um usuário e senha associado ao mesmo. Com posse de todos esses dados eu posso fazer minha aplicação conectar tranquilamente nesse banco, realizar toda configuração inicial do banco e viabilizar a solução completa.
docker exec -it <nome do container> mysql -u lamp_user  lamp -plamp_pass
Date Dezembro 21, 2015
Vídeo – Criando LAMP com seu Docker
Paulo C Zarpelon
Teria como apontar para um Banco de Dados externo ao docker?
Teria sim. Sem problemas. Usei tudo no Docker para facilitar o entendimento e mostrar que é possível armazenar tudo nesse ambiente.
Meu database/postgres é muito grande, por isso tem que ser externo. Não estou conseguindo A forma seria via link no docker-compose.yml ? não achei exemplos na internet… só achei "entre containers".
Usar um database externo ao docker não precisa de nenhuma configuração no compose. Basta vc colocar sua aplicação com apontamento para a base externa e pronto 🙂
Pingback: Criando um LAMP com Docker - Peguei do()
Uma dúvida. A pasta app foi só um nome q usou para exemplificar. Certo? Seu eu quiser uma app em Yii2 por exemplo com o nome real da aplicação pode ser né?
Outra dúvida, posso criar uma estrutura parecida com forrma tradicional? Criar uma pasta www e apontar o docker lá e coloaca todas as minhas apps web lá?
A pasta app foi só um exemplo mesmo. Pode usar a qual você quiser 🙂
Sobre mapear o www é possível também 🙂
Veja o erro que apresenta no momento que tento fazer seu exemplo:
PS D:php> docker-compose up -d
[31mERROR[0m: yaml.scanner.ScannerError: while scanning a simple key
in ".docker-compose.yml", line 4, column 1
in ".docker-compose.yml", line 5, column 1
Eu corrigi a formatação do conteúdo do docker-compose. Copia e tenta novamente, por favor.
obrigado. vou testar sim…
aproveitando, posso acessar o banco mysql com um utilitario como por exemplo o SQlyog?
Filipe Voges
Instalei o Docker seguindo todos os passos de vocês, mas ao executar o docker-compose up -d acontece o seguinte erro: