Ainda tento entender algumas coisas com o docker ajudado com o portainer, mas não consigo encontrar o tutorial para:
1 – Dados persistentes: Gostaria de executar o contêiner Mariadb com banco de dados persistente. Então, eu gostaria de adicionar um volume "db" com um ponto de montagem no meu arquivo /home/user
. Infelizmente, o ponto de montagem está sempre em /var/lib/docker/volumes
etc. Como fazer isso?
2 - Ligação: supondo que consegui executar o contêiner mysql com banco de dados persistente, gostaria de vincular o contêiner nginx (com dados persistentes /home/mountpoint:/data/www
) ao meu contêiner mysql com variável de ambiente (exemplo com docker compose:https://github.com/dadeg/docker-compose-nginx-php7-mysql/blob/master/docker-compose.yml). Percebo a opção de rede, mas não acho que possa ajudar... Como vincular o contêiner e criar um modelo com mais variáveis de ambiente?
Docker-compose poderia ser uma maneira melhor?
Obrigado desde já por qualquer ajuda.
jB
Responder1
Ao criar um volume via Docker ou Portainer, por padrão esse volume será armazenado no /var/lib/docker/volumes
host. Então esse é o comportamento padrão e correto.
Se você deseja vincular um volume chamado db
via Portainer, crie primeiro um volume. Em seguida, vá para Containers > Adicionar container > Especifique seu nome/imagem aqui > Na aba de volume você poderá vincular o volume que acabou de criar a um caminho no container.
Agora, sobre o seu link entre o Ningx e seu banco de dados. Recomendo que você aproveite o DNS das redes Docker aqui.
Primeiro, crie uma nova rede (chame-a, my-app
por exemplo). Em seguida, implante seu banco de dados e o contêiner Nginx dentro desta rede. O Docker DNS dará automaticamente aos contêineres dentro da mesma rede a capacidade de se comunicarem usando o nome do contêiner. Portanto, se você nomeou seu contêiner de banco de dados db
e seu contêiner Nginx nginx
, poderá fazer ping db
e nginx
vice-versa.