Я все еще пытаюсь понять некоторые вещи, связанные с Docker, с помощью Portainer, но не могу найти руководство по:
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
решение1
Когда вы создаете том через Docker или Portainer, по умолчанию этот том будет сохранен на /var/lib/docker/volumes
хосте. Так что это поведение по умолчанию и правильное.
Если вы хотите привязать том, вызванный db
через Portainer, сначала создайте том. Затем перейдите в Контейнеры > Добавить контейнер > Укажите свое имя/образ здесь > На вкладке тома вы сможете привязать только что созданный том к пути в контейнере.
Теперь о вашей связи между Ningx и вашей базой данных. Я рекомендую вам использовать DNS сетей Docker здесь.
Сначала создайте новую сеть (назовите ее, my-app
например). Затем разверните и вашу базу данных, и контейнер Nginx внутри этой сети. Docker DNS автоматически предоставит контейнерам внутри одной сети возможность общаться, используя их имя контейнера. Так что если вы назвали ваш контейнер базы данных db
и ваш контейнер Nginx nginx
, то вы сможете пинговать db
и nginx
наоборот.