У меня есть 2 IP-адреса в хосте ранчо (centos): 1.1.1.1
и 2.2.2.2
1.1.1.1
- это IP-адрес, который я хочу использовать для доступа к интерфейсу ранчера и SSH на хосте.
Я хочу использовать 2.2.2.2
для доступа к контейнерам для приложения. У меня есть 2 контейнера, один nginx и один ssh. Я настроил контейнеры для использования hostport 80
, сопоставленного с 2.2.2.2:80
и 22
с hostport 2.2.2.2:22
.
Я также изменил команду запуска по умолчанию для контейнера ранчера для прослушивания порта 80
и 443
IP 1.1.1.1
Если я захожу в браузер и захожу на 1.1.1.1
, я вижу ожидающего ранчера, а если я захожу на 2.2.2.2
, я вижу свое приложение-контейнер, как и ожидалось.
Однако, если я пытаюсь получить доступ к 1.1.1.1:22
, я заканчиваю тем, что подключился к контейнеру ssh, который должен только слушать 2.2.2.2:22
.
Я что-то здесь упускаю? Это проблема конфигурации хоста или контейнера? Может ли контейнер получить доступ к чему-то, о чем он даже не должен знать?
UPDATE
Позвольте мне попытаться уточнить настройки:
Rancher работает на хосте с 2 IP-адресами. Когда я запускаю rancher, я выполняю следующую команду, поэтому она привязывается к первому IP-адресу:
docker run -d --volumes-from rancher-data --restart=unless-stopped -p 1.1.1.1:80:80 -p 1.1.1.1:443:443 rancher/rancher
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.7 --server https://rancher1.my.tld --token [token] --ca-checksum [checksum] --etcd --controlplane --worker
В интерфейсе ранчера настроено 4 контейнера, которые я хочу указать на 2.2.2.2:22
и 2.2.2.2:80
, 2.2.2.2:2222
и 2.2.2.2:8080
Это 2 среды для приложения. 22
и 80
являются контейнерами nginx и ssh для среды LIVE (разделяя объем данных между ними) и то же самое для 2222
и 8080
, причем для среды QA. Я использую контейнер ssh для загрузки содержимого в контейнер nginx через общий объем данных.
Я не вижу проблемы с этой конфигурацией, за исключением того факта, что когда я настраиваю машину ssh на использование порта 22
, когда я пытаюсь подключиться к хосту ssh, я подключаюсь к контейнеру ssh.
ОБНОВЛЕНИЕ 2
Вот скриншот из настроек отображения портов в контейнере: https://snag.gy/idTjoV.jpg
Контейнерный порт 22
, сопоставленный с IP 2.2.2.2:222
Если я установлю это на 2.2.2.2:22
, SSH к хосту перестанет работать, и вместо него будут установлены ssh-соединения с контейнером.