docker & portainer - используйте его для создания контейнера

docker & portainer - используйте его для создания контейнера

Я все еще пытаюсь понять некоторые вещи, связанные с 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наоборот.

Связанный контент