2016-06-22 2 views
1

Mac 용 Docker (버전 1.12.0-rc2-beta16 (빌드 : 9493))를 실행 중입니다.Mac 컨테이너의 Docker에 SSH를 적용하는 방법

로컬 저장소에서 이미지를 가져 와서 'docker run -d'를 사용하여 컨테이너를 만들었습니다. 'docker ps'를 사용하여 'CONTAINER ID'를 얻은 다음 'docker inspect를 사용했습니다. <CONTAINER_ID> | grep IPA '를 입력하여 실행중인 컨테이너의 IP 주소를 가져옵니다.

이제 'ssh root @ < IP 주소가 >'인 SSH를 사용하여 컨테이너에 연결하려고하지만 'Operation timed out'오류가 발생합니다.

'icmp_seq 0 요청 제한 시간'>

내가 SSH를 사용하여 컨테이너에 연결하는 방법 -

추가 조사 나는 < IP 주소 >를 Ping 할 수 있음을 보여줍니다? 올바른 명령은 무엇입니까?

업데이트 : 위와 같이 중복되지 않습니다. "설명한 시나리오"가 시작되는 항목이 올바른 해결책입니다.

+0

당신은 아마 사용하고있는 이미지는 외설 ' SSH를 위해 구성된 t. Docker에 대한 몇 가지 질문은 프로그래밍과 관련이 있지만 느슨한 것은 아닙니다. 이 질문은 network/sys admin 질문이며 "Linux에서 SSH를 활성화하려면 어떻게합니까?" –

+0

프로그래밍에 관한 것이 아니기 때문에이 질문을 주제와 관련이 없도록 닫으려고합니다. –

답변

5

bash 프롬프트를 사용하려면 docker exec -ti %container-name-or-id% /bin/bash을 사용할 수 있습니다. ssh를 사용하고 ssh 데몬이 실행되고 있는지 확인하려면 컨테이너의 해당 포트를 -p 매개 변수 (예 : docker run -d -p 22:22 my_image)와 함께 표시해야합니다.

6

설명한 시나리오는 '정상적인'Docker에서 사용되는 접근 방식입니다.

Mac 용 Docker는 Mac 용으로 특별히 제작되었으므로 사용하기 쉽도록 조정되었습니다. 따라서 컨테이너의 IP 주소는 Mac에서이 방법으로 사용할 수 없습니다. 것을

문서 Getting Started with Docker for Mac 상태 :

Previous beta releases used docker as the hostname to build the URL. From this release forward, ports are exposed on the private IP addresses of the VM and forwarded to localhost with no other host name set. See also, Release Notes for Beta 9.

따라서, 올바른 방법은 용기에 SSH를 할 수는 SSH 포트 (22)에 포트 매핑을 사용하여 Mac 용 부두 노동자에 그것을 회전하는 것입니다. 예 :

ssh -p 2022 [email protected] 

N.B. :

docker run -d -p 2022:22 <Image Name> 

그리고 SSH 연결이 명령을 사용하여 유발된다 (N.B.는 대신 컨테이너의 IP 주소를 확인하고 사용할 필요없이 지정된 포트에서 '로컬 호스트'를 사용합니다) 그것은이 다음과 같은 오류가 발생 단순히 '22시 22분 -p'그 자체, 즉에 포트 (22)를 매핑 할 수 없습니다 (적어도 나를 위해했던 것입니다!) :

docker: Error response from daemon: driver failed programming external connectivity on endpoint pensive_wilson (2e832b82fc67d3e48864975c6eb02f6c099e34eee64b29634cfde286c41e00a7): Error starting userland proxy: Failed to bind: EADDRINUSE.

+2

가능 합니다만, 대부분의 경우 22 포트는 이미 호스트 시스템의 SSH 데몬에서 사용하고 있습니다. 오류 "EADDRINUSE"는이 오류를 다시 한 번 만난 경우에이 주소가 이미 사용 중이라는 것을 의미합니다. –

관련 문제