2016-11-25 2 views
2

Для создания фона у меня есть рабочий процесс развертывания, который одновременно загружает и устанавливает приложение на несколько систем/серверов. Чтобы протестировать этот рабочий процесс, мне нужно проверить параллельное развертывание на 500 системах. Я не могу создать 500 виртуальных машин, чтобы проверить это. Я применил контейнеры Docker для проверки этого рабочего процесса. Теперь задача состоит в том, чтобы запустить контейнер с открытым/статическим IP-адресом и установить ssh внутри контейнера, после чего я могу войти в этот контейнер через ssh. Но я не могу запустить контейнер с той же конфигурацией, потому что порт 22 уже используется контейнером №1 на хосте, и я не могу предоставить разные порты, потому что рабочий процесс развертывания внутренне использует только порт 22.Установка приложения в контейнеры докеров через SSH

Я думаю, что использование пересылки портов/NAT это может быть достигнуто, может быть всякий раз, когда запрос поступает на IP # 1, затем используйте порт 22, и когда когда-либо запрос поступает на IP # 2, используйте порт # 27. Но я не уверен, что это возможно.

Любые указатели на это будут очень полезны.

ответ

3

Во-первых, докер отображает контейнерные порты в разные порты хоста - запускает контейнеры с -p.

docker run mycontainer -p 10001:22 
docker run mycontainer -p 10002:22 
docker run mycontainer -p 10003:22 
etc. 

docker run reference С:

-p = []: Опубликовать порт контейнеры или диапазон портов на хосте.

Редактировать: Я думаю, что неправильно истолковал использование ssh.

Подходит ли рабочий процесс развертывания к каждому контейнеру через ssh (push) или с ним связывается (тянуть)? Если нажать, просто нажмите до 500 клиентов, например. : 10001: 10501. Если тянуть, все клиенты будут звонить по 22 в любом случае.

Смежные вопросы