2016-11-25 9 views
2

배경을 제공하기 위해 여러 시스템/서버에 동시에 응용 프로그램을 다운로드하고 설치하는 배포 워크 플로가 있습니다. 이 워크 플로를 테스트하려면 500 대의 시스템에서 동시 배포를 확인해야합니다. 나는 이것을 테스트하기 위해 500 대의 VM을 생성 할 수있는 위치에 있지 않습니다. Docker 컨테이너 접근 방식을 사용하여이 워크 플로를 테스트했습니다. 이제는 공용/정적 IP 주소를 가진 컨테이너를 시작하고 컨테이너 안에 ssh를 설치하면 ssh를 통해이 컨테이너에 로그인 할 수 있습니다. 하지만 포트 22는 호스트의 컨테이너 # 1에서 이미 사용되고 있기 때문에 다른 배치를 사용할 수는 없으므로 동일한 구성으로 다른 컨테이너를 시작할 수 없습니다.SSH를 통해 도커 컨테이너에 응용 프로그램 설치

포트 포워딩/NAT를 사용한다고 생각합니다. IP # 1에 대한 요청이있을 때마다, 포트 22를 사용하고 IP # 2에 대한 요청이있을 때마다 포트 # 27을 사용할 수 있습니다. 그러나 이것이 가능한지 확실하지 않습니다.

이 부분에 대한 설명이 도움이 될 것입니다.

답변

3

먼저 docker는 컨테이너 포트를 다른 호스트 포트에 매핑합니다.-p를 사용하여 컨테이너를 시작합니다. docker run reference 가입일

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

:

-p = []하십시오 용기 포트 또는 호스트 포트의 범위를 게시.

편집 : 내가 ssh를 잘못 읽은 것 같습니다.

배포 작업 흐름이 ssh (밀어 넣기)를 통해 각 컨테이너에 연결 되나 또는 연결되어 있습니까 (잡아 당깁니다)? 푸시하는 경우 500 개의 클라이언트로 푸시합니다. : 10001 ~ 10501. 당기면 모든 클라이언트가 22 번에 전화를 겁니다

관련 문제