Docker: перезапуск контейнера и расшаренная сеть

  • Есть приложение с docker-compose и в нём есть контейнер (app_www_1) с nginx, собственно, отдающим это приложение
  • Для приложения создаётся дефолтная локальная сеть app_default
  • Есть глобальный nginx (тоже в докере), который запросы для определённого виртуального хоста проксирует на app_www_1

docker-compose.yml для глобального nginx:

version: "3.8"

services:

    nginx:
        container_name: global_nginx
        image: nginx:alpine
        restart: unless-stopped
        ports:
            - "80:80"
            - "443:443"
        # ...
        networks:
            - app_default
            # ...
        external_links:
            - app_www_1
            # ...

networks:
    app_default:
        external: true
    # ...

В nginx.conf, соответственно, proxy_pass http://app_www_1;

Вопрос 1: правильно ли здесь организован проброс запросов?

Всё работает как надо, но не получается перезапустить приложение (docker-compose stop + up -d):

error while removing network: network app_default id ... has active endpoints

То есть сетка занята "глобальным" контейнером. После поднятия приложения для него создаётся новая сетка и они теперь друг друга не видят. Приходится останавливать global_nginx, перезапускать app, запускать снова global_nginx, тогда работает.

Вопрос 2: как это решить, чтобы не останавливать каждый раз глобальный контейнер?


Ответы (0 шт):