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: как это решить, чтобы не останавливать каждый раз глобальный контейнер?