btafarelo
(usa Debian)
Enviado em 25/12/2016 - 14:50h
Olá, vou tentar te ajudar
Respondendo sua pergunta diretamente:
- Ao montar o container com o comando docker run, você deve usar o parametro -v (volume), assim seus dados não ficam dentro do container, ex:
docker run -ti --rm -v $(pwd):/mnt centos:6
Esse comando irá montar o diretório atual na pasta /mnt. Você deve trabalhar dessa maneira.
Nesse link você vai encontrar mais detalhes:
https://hub.docker.com/_/mysql/
Agora comentando sobre sua abordagem de ter vários serviços em um único container:
Docker não é VM, então, o "correto" é ter um container com cada serviço que você necessita, como se fosse um servidor para cada serviço.
Então, você deveria ter os seguintes containers:
Imagem base: Debian Jessie
Container 1 > Apache2
Container 2 > MySQL
FTP entendo que é um plugin do apache, então, você pode personalizar seu apache com ele. Mas se for para o deploy do seu site ou da app, aí você deveria usar o volume ou então
distribuir um novo container a cada atualização. Durante o tempo de desenvolvimento sem erro, pode usar o mesmo container e realizar múltiplos deploys.
SSH entendo que é para você acessar logs e manutenção, mas pra isso tem o docker exec e o volume conforme eu comentei na primeira parte.
Espero ter ajudado.
Abraço
Bruno Tafarelo