У меня работает докер на машине с IP-адресом fd42: 1337 :: 31.Один контейнер представляет собой обратный прокси-сервер nginx с отображением портов 443: 443, в его файле конфигурации он proxy_pass -es в зависимости от имени сервера для других портов на том же компьютере, например
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name plex.mydomain.tld;
location / {
proxy_pass http://[fd42:1337::31]:32400;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name file.mydomain.tld;
location / {
proxy_pass http://[fd42:1337::31]:2020;
}
}
Эти другие порты относятся к серверам bottle py или другим контейнерам с сопоставленными портами.
Я запустил этот контейнер с помощью команды
docker run -d -p 443:443 (volume mappings) --name reverseproxy nginx
, и он год назад мне хорошо служил.
Теперь я решил поработать с docker-compose и у меня есть следующий файл конфигурации:
version: '3'
services:
reverseproxy:
image: "nginx"
ports:
- "443:443"
volumes:
(volume mappings)
Когда я закрываю оригинальный контейнер и запускаю новый с docker-compose up , он запускается, но каждый запрос дает мне что-то вроде этого:
2019/02/13 17:04:43 [crit] 6#6: *1 connect() to [fd42:1337::31]:32400 failed (99: Cannot assign requested address) while connecting to upstream, client: 192.168.178.126, server: plex.mydomain.tld, request: "GET / HTTP/1.1", upstream: "http://[fd42:1337::31]:32400/", host: "plex.mydomain.tld"
Почему новый контейнер ведет себя по-другому?Что мне нужно изменить?
(я знаю, что у меня может быть режим виртуальной сети для прямого подключения к другим контейнерам, но мой прокси-сервер должен подключаться к некоторым службам, которые не находятся внутри контейнеров (нона том же металле).)