https://docs.docker.com/userguide/dockerlinks/
Обычно апликация у нас находится на одном контейнере, а база данных на другом. Нужен унифицированный механизм, который бы нам давал возможность связывать новоподнятый узел горизонтального масштабирования.
Тут нам приходит на помощь линкование контейнеров, мы не выставляем порты наружу, и связь апликация с базой сверхсекьюрная - доступа снаружи нет - коммуникация возможна только между контейнерами.
Обычно апликация у нас находится на одном контейнере, а база данных на другом. Нужен унифицированный механизм, который бы нам давал возможность связывать новоподнятый узел горизонтального масштабирования.
Тут нам приходит на помощь линкование контейнеров, мы не выставляем порты наружу, и связь апликация с базой сверхсекьюрная - доступа снаружи нет - коммуникация возможна только между контейнерами.
$ sudo docker run -d --name db training/postgres
$ sudo docker run -d -P --name web --link db:db training/webapp python app.py
Залинкованные порты описаны в переменных окружения контейнера, откуда апликация их и может достать:
DB_NAME=/web2/db
DB_PORT=tcp://172.17.0.5:5432
DB_PORT_5432_TCP=tcp://172.17.0.5:5432
DB_PORT_5432_TCP_PROTO=tcp
DB_PORT_5432_TCP_PORT=5432
DB_PORT_5432_TCP_ADDR=172.17.0.5
А вообще если конкретный контейнер даже если не предоставляет никаких переменных окружения, то линкование, добавляет в /etc/hosts по имени прилинкованного контейнера его ip адрес, и мы можем использовать это имя для сетевых конектов.
Комментариев нет:
Отправить комментарий