Докер: «Невозможно назначить запрошенный адрес при подключении к восходящему каналу» - PullRequest
0 голосов
/ 13 февраля 2019

У меня работает докер на машине с 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"

Почему новый контейнер ведет себя по-другому?Что мне нужно изменить?

(я знаю, что у меня может быть режим виртуальной сети для прямого подключения к другим контейнерам, но мой прокси-сервер должен подключаться к некоторым службам, которые не находятся внутри контейнеров (нона том же металле).)

...