docker-machine VirtualBox 인스턴스로 ssh하는 방법은 무엇입니까?


82

docker-machine 버전 0.2.0 docker 버전 1.6.2

내가 사용하고 VirtualBox를 사용하여 컴퓨터를 만들 고정 표시기 기계를 . 모든 것이 잘 작동하지만 기계 자체에 ssh하고 싶습니다.이 작업을 수행하는 방법에 대한 지침을 찾지 못했습니다. ssh 포트에 연결할 수 있습니다.

ssh $(docker-machine ip dev)

하지만 어떤 사용자 이름 / 비밀번호 / ID 파일을 사용할지 모르겠습니다.


4
-1 당신이 코멘트를 달고이 질문에 무엇이 잘못되었는지 설명하고 질문자가 수정하도록 허용한다면.
Roy Truelove

컨테이너 내부 연결하는 권유하는 고정 표시기의 방법은 docker exec -it my_container /bin/bash해당 문서의 참조 docs.docker.com/reference/commandline/cli/#exec
user2915097

@ user2915097 문제는 기계 자체가 아닌 고정 표시기 용기에 SSH이었다
로이 Truelove입니다

1
많은 Docker 질문은 프로그래밍 콘텐츠가없는 경우 반대 투표를받습니다. 논란의 여지가 있지만,이 질문은 SF에 있어야하지만 실제로는 판단입니다.
Adrian Mouat

답변:


121

다음을 실행하여 docker-machine 호스트에 로그인 할 수 있습니다.

docker-machine ssh default

(여기에서 "기본"호스트 사용)

ID 파일은 ~/.docker/machine/machines. 호스트가 아닌 컨테이너에 로그인하려면 docker execuser2915097이 제안한대로 사용 하십시오.


따라서 다른 PC (원격 호스트를 설정하는 데 사용 된 것과 다름)가 있고이 PC에서 도커 머신을 통해 액세스 할 수 있기를 원합니다 (프로비저닝에 사용 된 것과 동일). 어떻게해야합니까?
Mahori

71

을 통해 정말로해야한다면 ssh이것은 docker 1.8.2에서 작동합니다.

도커 초기화 :

eval "$(docker-machine env default)"

기본 도커 머신에서 IP를 가져옵니다.

docker-machine ip default

이것은 다음과 같이 출력합니다. 192.168.99.100

ssh docker@192.168.99.100

암호는 tcuser있지만 ID 파일을 사용할 수도 있습니다. 다른 답변을 참조하십시오.


8
암호가라는 것을 어떻게 알게되었는지 궁금합니다 tcuser. 비밀을 밝혀 주 시겠어요? :-)
fmquaglia

2
다른 곳에서 발견,하지만 당신은 여기에서 볼 수 있습니다 github.com/docker/machine/search?utf8=%E2%9C%93&q=tcuser
timaschew

25

마침내 답을 찾았습니다.

저는 Windows에서 Docker Toolbox (Docker Machine)를 사용하고 있습니다.

내가 경우 docker-machine -D ssh defaultSSH 매개 변수가 다음과 같아야합니다.

호스트 : localhost
포트 : 51701
사용자 : docker
키 : .docker \ machine \ machines \ default \ id_rsa

Putty / MobaXterm 설정을 일치하도록 변경하면 컨테이너에 SSH를 사용할 수 있습니다.


고마워요. 결과 위에 답변을 찾았습니다. 몇 시간의 좌절에서 나를 구했습니다. +1
f123 2015-09-13

1
추가하려면 제 경우에는 SSH 포트가 58361이었습니다. -D 플래그를 사용하면 필요한 모든 세부 정보가 인쇄됩니다. Using SSH client type: external {[-o BatchMode=yes -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none docker@127.0.0.1 -o IdentitiesOnly=yes -i C:\Users\<user>\.docker\machine\machines\default\id_rsa -p 58361] C:\Program Files\Git\usr\bin\ssh.exe}
rohitmohta

어디서 구할 수 docker-machine inspect있습니까? 그것은 Driver->IPAddress변수에 비 로컬 주소를 인쇄했습니다
falko

12

해커를 위해 여기에 '활성'도커 머신에 ssh하는 스크립트가 있습니다. 또한 ssh_key, ssh_port 및 ssh_user에 대한 값을 제공 rsync하여 localhost와 VM간에 같은 작업을 수행 할 수 있습니다 .

#!/bin/bash
docker_machine_name=$(docker-machine active)
docker_ssh_user=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHUser}})
docker_ssh_key=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHKeyPath}})
docker_ssh_port=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHPort}})

ssh -i $docker_ssh_key -p $docker_ssh_port $docker_ssh_user@localhost

그것을 복사하여 터미널에 붙여 넣을 수 있습니다. 또는 스크립트를 함수로 만들고 이름을 인수로 제공합니다.


5

어떤 이유로 ssh보다 명령을 사용하려면 docker-machine ssh다음을 수행 할 수 있습니다.

ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa

2

Mac OX의 경우 컴퓨터와 키가 여기에 있습니다 (아래와 같은 키가 있는지 확인하십시오.

~/project/dev/docker_notes za$ ls /Users/za/.docker/machine/machines/default/
.DS_Store        ca.pem           config.json      disk.vmdk        id_rsa.pub       server-key.pem
boot2docker.iso  cert.pem         default/         id_rsa           key.pem          server.pem

1) 사용 가능한 VM을 나열합니다.

> ~/project/dev/docker_notes za$ docker-machine ls
>     NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
>     default   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.0

제 경우에는 컴퓨터 이름이 기본값입니다. 그래서 그냥

~/project/dev/docker_notes za$ docker-machine ssh default


                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.11.0, build HEAD : 32ee7e9 - Wed Apr 13 20:06:49 UTC 2016
Docker version 1.11.0, build 4dc5990
docker@default:~$ vi 
.ash_history  .ashrc        .docker/      .local/       .profile      .ssh/         log.log
docker@default:~$ ls
log.log

보시다시피 docker-machine / instance로 ssh 할 수 있습니다.

docker@default:~$ uname -a
Linux default 4.1.19-boot2docker #1 SMP Thu Apr 7 02:41:05 UTC 2016 x86_64 GNU/Linux

당신은 또한 이것을 따를 수 있습니다> 하우투-도커


-1

다음 명령을 통해 도커에 ssh 할 수도 있습니다.

docker exec -it / bin / sh

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.