Я все еще пытаюсь понять некоторые вещи с помощью Docker, помогающего с portainer, но я не могу найти tuto для:
1 - Постоянные данные: Я хочу запустить контейнер Mariadb с постоянной базой данных. Поэтому я хотел бы добавить том "db" с точкой монтирования в свой /home/user
. К сожалению, точка монтирования всегда находится в /var/lib/docker/volumes
и т.д. Как это сделать?
2 - Ссылка: предполагая, что мне удалось запустить контейнер mysql с постоянной базой данных, я хотел бы связать контейнер nginx (с постоянными данными /home/mountpoint:/data/www
) в мой контейнер mysql с переменной окружения (пример с docker compose: https://github.com/dadeg/docker-compose-nginx-php7-mysql/blob/master/docker-compose.yml). Я заметил опцию сети, но не думаю, что она может помочь ... Как связать контейнер и создать шаблон с дополнительными переменными окружения?
Docker-compose может быть лучше?
Спасибо заранее за любую помощь.
jB
Когда вы создаете том через Docker или Portainer, по умолчанию этот том будет храниться в /var/lib/docker/volumes
на хосте. Так что это стандартное и правильное поведение.
Если вы хотите привязать том с именем db
через Portainer сначала создайте том. Затем перейдите в Контейнеры> Добавить контейнер> Укажите здесь свое имя / изображение> На вкладке тома вы сможете привязать только что созданный том к пути в контейнере.
Теперь о вашей связи между Ningx и вашей базой данных. Я рекомендую вам использовать здесь DNS сетей Docker.
Сначала создайте новую сеть (назовите ее my-app
например). Затем разверните в этой сети свою базу данных и контейнер Nginx. Docker DNS автоматически даст возможность контейнерам внутри одной сети обмениваться данными, используя свое имя контейнера. Итак, если вы назвали контейнер своей базы данных db
и ваш контейнер Nginx nginx
, тогда вы сможете пинговать db
из nginx
и наоборот.