Docker의 HyperKit에서 만든 VM에 액세스하는 방법은 무엇입니까?


78

Mac 용 Docker는 Mac 에서 컨테이너를 저장하고 실행하기 위해 HyperKit 에서 만든 Linux VM을 사용합니다 .

Docker Toolbox를 사용하면 VirtualBox를 열고 docker-machine VM에 액세스 할 수 있습니다. 하지만 Mac 용 Docker를 사용하면 HyperKit에서 만든 VM에 어떻게 액세스 할 수 있습니까?

답변:


143

업데이트 2019-01-31, ru10의 업데이트 덕분에 이제 더 나은 방법이 있습니다.

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

원래 답변 :

잠시 후 HyperKit에서 만든 VM의 셸을 가져 오는 방법은 다음과 같습니다.

터미널에서 실행 :

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

빈 화면이 표시되면 Enter를 입력하십시오. 로그인 프롬프트가 표시됩니다. 로 로그인 root하고 Enter 키를 누르면 셸이 표시됩니다 (비밀번호 없음)., 당신은 쉘을 얻을 것이다 :

여기에 이미지 설명 입력

세션을 종료하려면 Ctrl-A k다음 y을 입력하십시오 .

조금 해키이지만 지금은 작동하는 것 같습니다 (2016 년 9 월) (2017 년 9 월).


1
이것은 나를 위해 완전히 망가졌습니다. 연결할 수 있지만 TERM 설정이나 데이터가 파이프되는 방식에 심각한 문제가 있습니다. 데이터가 손실되고 올바른 형식이 아닌 작동하지 않는 터미널 세션이 있습니다. 세션을 재설정하기 위해 더 많은 방법을 시도하고 있지만 지금까지 실패했습니다.
Gerry Gleason

나를 위해 그것은 여전히 ​​작동합니다 (iterm2 터미널 에뮬레이터를 사용하는 2017 년 2 월 1.13.0-beta39)
Jauco

1
이에 대한 더 나은 가이드가 필요합니다. 귀하의 지시에 따라 VM에 들어갈 수있었습니다. 필자의 경우 엔터를 처음 누른 후 shVM 에 대한 프롬프트로 이동했습니다. 내가 ls -ltty경로를 달렸 을 때에서 링크가 있다는 것이 밝혀 졌는데, /dev/ttys001입력하기가 훨씬 더 쉽습니다.
Spencer Williams

이 인터페이스에서 무엇을 할 수 있습니까? 예를 들어 노드를 실행할 수 없습니다. 다른 곳에 복사했지만 작동하지 않았습니다.
Inanc Gumus

아니면 network_mode = host 컨테이너에 연결할 수 있습니까?
Inanc Gumus

47

Mac OS High Sierra Docker 버전 18.06.0-ce-mac70 (26399)

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

대신에

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

4
업데이트 된 경로에 감사드립니다. 수락 된 답변은 이것으로 업데이트되어야합니다.
seren

흠 ... ~/Library/Containers/com.docker.docker/Data/vms/0/ttyMacOs Catalina 및 DFD v2.3.0.4에서 대신 "Cannot exec Permission denied"오류가 발생합니다
demisx

이 버그로 인해입니다 github.com/docker/for-mac/issues/4822
lqbweb

9

Docker 유지 관리자 의이 GitHub 문제 의견 에 따르면 VM에 액세스하는 데 권장되는 방법은 권한있는 Docker 컨테이너를 사용하는 것입니다.

VM에 로그인 해보십시오. (TTY에서 화면을 사용하는 대신 이것을 권장합니다)

$ docker run -it --privileged --pid=host justincormack/nsenter1

1
이 카탈리나에있는 청각 장애를 액세스, 나를 위해 않았다 일
xenoterracide
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.