Контейнеры для соединения каналов связи с сетью

У меня есть следующие настройки:

CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                NAMES
eab42051ca26        web-www:20180804             "node run.js"            8 minutes ago       Up 8 minutes        3000/tcp             web-www
63ec48e93a77        jwilder/nginx-proxy:latest   "/app/docker-entrypo…"   9 hours ago         Up 9 hours          0.0.0.0:80->80/tcp   nginx-proxy-server
463ffd55260b        fiorix/freegeoip             "/go/bin/freegeoip"      9 hours ago         Up 9 hours          8080/tcp             freegeoip
bdc702c370ec        euvat                        "/usr/local/bin/euva…"   9 hours ago         Up 9 hours          3000/tcp             euvat
40c07de732fa        redis:4.0.10                 "docker-entrypoint.s…"   9 hours ago         Up 9 hours          6379/tcp             redis-www
76831834f59d        mongo:4.0                    "docker-entrypoint.s…"   9 hours ago         Up 9 hours          27017/tcp            mongo-www

где мое приложение web-www node.js подключается к Redis и Mongo через

NETWORK ID          NAME                DRIVER              SCOPE
74d8f38aca38        bridge              bridge              local
1c894a7fa176        host                host                local
ca02c5ccac55        network-www         bridge              local
7226d9cc5360        none                null                local

мой файл run.sh выглядит так:

OLDAPP="$(docker ps --all --quiet --filter=name="$APP")"
if [ -n "$OLDAPP" ]; then
  docker stop $OLDAPP && docker rm $OLDAPP
fi
docker run --name web-www \
    --network network-www \
   --link euvat:euvat \
   --link freegeoip:freegeoip \
   --env VIRTUAL_HOST=araweelo.local \
   --env-file /env/web-www.env \
   web-www:20180804.182446

Итак, теперь я начинаю новый стек разработки dev-www например, поэтому я создам network-dev, запустить redis-dev а также mongo-dev но хочу поделиться euvat а также freegeoip контейнеры с web-www контейнер.

это правильный способ сделать это или есть альтернативный метод?

Любой совет высоко ценится.

1 ответ

Решение

Ссылки Docker устарели и, возможно, скоро будут удалены.

Лучше заранее создавать сети, контейнеры и присоединять контейнер к сети.

docker network create network-www

docker run --name web-www \
   --env VIRTUAL_HOST=araweelo.local \
   --env-file /env/web-www.env \
   web-www:20180804.182446

docker network connect network-www web-www
docker network connect network-www euvat
docker network connect network-www freegeoip

Приведенные выше команды создадут network-www пользовательская мостовая сеть и подключение euvat, web-www а также freegeoip контейнеры в эту сеть.

Замените / добавьте контейнеры по мере необходимости. Может быть, лучше написать файл compose, который вызывает контейнеры в одной команде

Другие вопросы по тегам