docker-machine VirtualBoxインスタンスにSSH接続する方法は?


83

docker-machineバージョン0.2.0dockerバージョン1.6.2

私が使っていたVirtualBoxを使用してマシンを作成するために、ドッキングウィンドウマシンを。すべて正常に動作しますが、マシン自体にSSHで接続したいのですが、これを行う方法についての指示が見つかりません。sshポートに接続できます:

ssh $(docker-machine ip dev)

しかし、使用するユーザー名/パスワード/ IDファイルがわかりません。


4
-1の場合は、コメントを入力して、この質問の何が問題になっているのかを説明し、質問者に修正を許可します。
Roy Truelove 2015年

コンテナー内で接続するための推奨されるDockerの方法docker exec -it my_container /bin/bashは、ドキュメントdocs.docker.com/reference/commandline/cli/#exec
user2915097

@ user2915097問題は、Dockerコンテナーではなく、マシン自体にSSH接続することでした
Roy Truelove 2015年

1
Dockerの質問の多くは、プログラミングコンテンツがない場合、反対票を投じられます。間違いなく、この質問はSFに関するものでなければなりませんが、それは本当に判断の呼びかけです。
エイドリアンムアット2015年

回答:


121

実行するだけでDockerマシンホストにログインできます

docker-machine ssh default

(ここでは「デフォルト」ホストを使用)

IDファイルは~/.docker/machine/machines。の下に保存する必要があります。(ホストではなく)コンテナーにログインする場合docker execは、user2915097の提案に従って使用してください。


だから私は別のPC(リモートホストのセットアップに使用されたものとは異なる)を持っていて、このPCのdocker-machineを介してそれにアクセスできるようにしたい(プロビジョニングに使用されたものと同じように)。どうすればいいですか?
マホリ

71

を介して本当にそれを行う必要がある場合ssh、これはdocker1.8.2で動作します

init docker:

eval "$(docker-machine env default)"

デフォルトのDockerマシンからIPを取得します。

docker-machine ip default

これは次のようなものを出力します: 192.168.99.100

ssh docker@192.168.99.100

パスワードはtcuserですが、IDファイルを使用することもできます。他の回答を参照してください


8
パスワードがtcuser。であることをどうやって知ることができたのか非常に興味があります。秘密を明かしていただけませんか?:-)
fmquaglia 2016年

2
他の場所で見つかりましたが、ここでも確認できます:github.com/docker/machine/search?utf8
%E2%9C%93&

25

最後に、私は答えを見つけました:

私はDockerToolbox(Docker Machine)を搭載したWindowsを使用しています。

私の場合docker-machine -D ssh default、SSHパラメータは次のようになります。

ホスト:localhost
ポート:51701
ユーザー:docker
キー:.docker \ machine \ machine \ default \ id_rsa

Putty / MobaXtermの設定を一致するように変更すると、出来上がり、コンテナーにSSHで接続できます。


ねえ、ありがとう。結果の上にあなたの答えを見つけました。何時間もの欲求不満から私を救った。+1
f123 2015

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 2016年

どこから入手できますdocker-machine inspectか?これは、内の非ローカルアドレス印刷Driver->IPAddress変数を
ファルコ

12

そこにいるハッカーのために、これが「アクティブな」docker-machineにSSH接続するスクリプトです。これにより、ssh_key、ssh_port、およびssh_userの値も提供さrsyncれ、ローカルホストと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

それをコピーして端末に1行ずつ貼り付けると、機能します。または、スクリプトを関数にして、引数として名前を入力します。


5

何らかの理由sshdocker-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)利用可能なvmsを一覧表示します。

> ~/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

これに従うこともできます> howto --docker


-1

次のコマンドを使用して、DockerにSSH接続することもできます-

docker exec -it / bin / sh

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.