Todavía trato de entender algunas cosas con Docker ayudado con Portainer pero no puedo encontrar el tuto para:
1 - Datos persistentes: Me gustaría ejecutar el contenedor Mariadb con una base de datos persistente. Entonces me gustaría agregar un volumen "db" con un punto de montaje en mi archivo /home/user
. Desafortunadamente, el punto de montaje siempre está en /var/lib/docker/volumes
etc. ¿Cómo hacer eso?
2 - Enlace: suponiendo que logré ejecutar el contenedor mysql con una base de datos persistente, me gustaría vincular el contenedor nginx (con datos persistentes /home/mountpoint:/data/www
) a mi contenedor mysql con una variable de entorno (ejemplo con Docker Compose:https://github.com/dadeg/docker-compose-nginx-php7-mysql/blob/master/docker-compose.yml). Noto la opción de red pero no creo que pueda ayudar... ¿Cómo vincular el contenedor y crear una plantilla con más variables de entorno?
¿Docker-compose podría ser una mejor manera?
Gracias de antemano por cualquier ayuda.
JB
Respuesta1
Cuando crea un volumen a través de Docker o Portainer, de forma predeterminada, este volumen se almacenará en /var/lib/docker/volumes
el host. Entonces ese es el comportamiento predeterminado y correcto.
Si desea vincular un volumen llamado db
a través de Portainer, primero cree un volumen. Luego vaya a Contenedores > Agregar contenedor > Especifique su nombre/imagen aquí > En la pestaña de volumen podrá vincular el volumen que acaba de crear a una ruta en el contenedor.
Ahora, sobre su vínculo entre Ningx y su base de datos. Le recomiendo que aproveche el DNS de las redes Docker aquí.
Primero, cree una nueva red (llámela, my-app
por ejemplo). Luego, implemente su base de datos y su contenedor Nginx dentro de esta red. Docker DNS permitirá automáticamente a los contenedores dentro de la misma red comunicarse utilizando su nombre de contenedor. Entonces, si ha nombrado el contenedor de su base de datos db
y su contenedor Nginx nginx
, podrá hacer ping db
desde nginx
y viceversa.