I ағымдағы қондырғымен докер үйірін басқарып жатырмын
swarm.abc.com (192.168.1.1 дейік) - мастер node1.abc.com - бала node2.abc.com - бала
Менде 888 портта жұмыс істейтін үйіндіде жұмыс істейтін контейнер бар. Егер мен 192.168.1.1:888 қосылсам - мен оған қол жеткізе аламын - бұл жақсы.
swarm.abc.com сайтында nginx бар. nginx конфигурациясында менде
server {
listen 80;
server_name my.domain.com;
location / {
proxy_pass http://localhost:888; #which should redirect me to 192.168.1.1
}
}
Алайда, my.domain.com қосылу кезінде мен қосылудың күту уақытын аламын. Көмек бар ма?
Сәлеметсіз бе
Сети являются namespaced в докере, и часть того пространства имен является устройством закольцовывания, иначе 127.0.0.1 или localhost. Это означает, что localhost в nginx контейнере указывает на просто сеть nginx контейнера, не Ваш внешний хост.
Для контейнера к контейнерным сетям, поместите, контейнеры на том же пользователе создали сеть докера (сочините, делает это для Вас по умолчанию). Затем можно соединиться с другими контейнерами их контейнерным именем, контейнерным идентификатором, сервисным названием или сетевым псевдонимом. Таким образом, если Ваше контейнерное имя app-x
, и в контейнере оно слушает на порте 999, и Вы имеете 888:999
как Ваш порт вперед, затем конфигурация nginx была бы похожа:
proxy_pass http://app-x:999;
Примечание, что не необходимо опубликовать или выставить порт из приложения-x для nginx для достижения его по контейнерным сетям.