2016-09-23 4 views
1

Docker 컨테이너가 아닌 가상 호스트를 사용하여 내 로컬 상자에서 구분 된 시스템에 액세스하기 위해 ssh 터널을 만드는 것이 정상적인 작업 프로세스였습니다. 예를 들어 내 psql 클라이언트를 Postgres 인스턴스에 연결하면 요새 상자에서만 연결할 수 있습니다.ssh 터널을 사용하는 것과 같습니다.

Docker를 사용하면 모든 것이 훨씬 더 멀리 떨어져 있습니다. Docker와 동일한 작업을 수행하는 것과 동일한 작업이 있습니까? Docker 인스턴스를 통해 RDS 인스턴스로 터널링 하시겠습니까?

답변

0

docker CLI을 사용하여 실행중인 컨테이너에 연결하십시오. 예를 들어 ...

는 (로컬 컴퓨터에서) 사용할 수있는 컨테이너에 DB를 실행 개인적으로 호스트에 ssh를 할 필요가 거의 절대

docker exec -it mypsqlcontainer psql -U username dbname 

에 로그인합니다. 모든 것은 도커 CLI를 통해 수행 할 수 있습니다.

+0

좋아요, 그래서 도커 컨테이너 ID를 조회하는 명령과 결합해야합니까? – Mahoni

+0

컨테이너 이름을 지정하고 ID 대신 이름을 사용하는 것이 더 쉽습니다. 예 : 고정 표시기 실행 -d --name mysqlcontainer mysql을 : 최신 그런 다음 컨테이너 ID를 파악하지 않고 위 내 '고정 표시기 간부 ..' 라인을 사용할 수 있습니다. 물론 이것은 각 컨테이너의 인스턴스가 1 개인 경우에만 작동합니다. '--scale'을 사용하여 주어진 서비스에 대한 다중 컨테이너를 생성 할 때'--name'을 지정할 수 없습니다. – Alkaline

0

docker 호스트에 ssh-tunnel을 만들 수 있습니다. DB 포트는 도커 호스트에서 액세스 할 수 있어야합니다 (예 : '-p'도커 실행 옵션 사용).

DB 포트를 게시하지 않으려는 경우 ssh 서버로 점프 박스 컨테이너를 만들 수 있습니다.이 컨테이너와 사용자 컨테이너를 연결하여 점프 박스 컨테이너와 DB 컨테이너를 연결하는 포트 22를 게시하십시오.

관련 문제