인프런 커뮤니티 질문&답변

김성진님의 프로필 이미지

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

Windows환경에서 SSH+Docker 컨테이너 기동 시 발생하는 오류 해결

docker 이미지 다운로드 불가

22.10.10 23:03 작성

·

960

0

[Windows환경에서 SSH+Docker 컨테이너 기동 시 발생하는 오류 해결] 관련하여 문의드립니다...

 

  • Windows 1) docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:latest /usr/sbin/init

위 명령어로 컨테이너 실행 시, 이미지는 잘 다운받아지지만 ssh 접속시 아래와 같은 메시지가 나옵니다.

docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:latest /usr/sbin/init

$ ssh root@localhost -p 10022
kex_exchange_identification: Connection closed by remote host
Connection closed by ::1 port 10022

 

도커 데스크탑에서 컨테이너 상세 내역을 보니 아래와 같이 나옵니다..

 

  • Windows 2, 위 명령어로 실행되지 않을 때) docker run -itd --name docker-server -p 10022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init

위 명령어 실행시, 이미지 다운로드 자체가 불가합니다.

$ docker run -itd --name docker-server -p 10022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init
docker: Error response from daemon: invalid mount path: 'C' mount path must be absolute.
See 'docker run --help'.

윈도우 환경입니다....

답변 2

0

김성진님의 프로필 이미지
김성진
질문자

2022. 10. 12. 00:07

우선 명령어 입력 환경은 윈도우 환경에서 git bash를 사용하였습니다.

테스트해보니 git bash로 실행하니 문제가 되었습니다. 윈도우 명령 프롬프트로 실행하니 모두 정상 동작합니다..

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

2022. 10. 11. 08:32

안녕하세요, 이도원입니다.

질문1) 올려주신 명령어로 그대로 실행시, 저희쪽 Windows에서는 정상 실행되었는데, 원인을 알기 어렵네요. 첫번째 방법으로 실행할 경우라도 최신 이미지로 기동할 경우에는 SSH 서버에는 접속이 되어야 합니다. 우선 현재 가지고 계신 도커의 이미지를 모두 삭제하신 다음에 새로운 이미지로 다시 실행해 보시기 바랍니다.

docker rmi edowon0623/docker:latest 
docker system prune 

추가로, 실행 명령어를 아래와 같이 변경하여 실행해 보시기 바랍니다.

docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker:latest /usr/sbin/init

image위 이미지에서 최신 이미지의 ID를 확인해 보실 수 있습니다.

image위 이미지는 docker logs docker-server 명령어를 실행했을 때의 결과 화면입니다.

질문2) 올려준신 명령어를 그대로 실행하였을 때, 정상 작동되는 것을 봐서는 오타(Typo)와 같은 명령어 오류는 아닌 것 같습니다. 다만, 윈도우 환경이라고 하셨는데 첨부 이미지를 보면 아래와 같이 $ 표시가 되어 있는데, 어디에서 실행하셨는지 확인 부탁드립니다.

image

윈도우의 명령 프롬프트(CMD) 또는 파워셀에서 실행 시 이상이 없는 지 다시 한번 확인 부탁드리며, 번거로우시곘지만, 윈도우에 설치 된 Docker Desktop을 삭제하고, 재설치 해 보시기 바랍니다. 재설치 시 Docker Desktop에 관련 환경변수를 모두 삭제하시고 진행해 보시기 바랍니다.

만약 위와 같은 방법으로도 실행되지 않으시면, 실행하셨던 전체 과정(docker run 하는 부분과 docker images 명령어)을 CMD나 파워셀의 화면 그대로 캡쳐해서 공유해서 주시면 원인을 찾는데 도움이 될 것 같습니다.

추가로, 컨테이너 형태로 SSH+Docker를 실행하는 것 말고, Oracle Virtual Box와 같은 VM에 직접 리눅스 설치 후 진행하는 방법도 있습니다. 관련 정보가 필요하시면 다시 글 남겨 주세요.

감사합니다.