web-dev-qa-db-ja.com

docker-machine VirtualBoxインスタンスにsshする方法は?

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

docker-machineを使用してVirtualBoxを使用してマシンを作成 を使用しています。すべて正常に動作しますが、マシン自体にsshを実行したいので、これを行う方法についての説明はありません。 sshポートに接続できます。

ssh $(docker-machine ip dev)

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

77
Roy Truelove

実行するだけでdocker-machineホストにログインできます

docker-machine ssh default

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

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

115
Adrian Mouat

sshを介して本当に必要な場合、これはdocker 1.8.2で動作しています

初期化ドッカー:

eval "$(docker-machine env default)"

デフォルトのドッカーマシンからIPを取得します。

docker-machine ip default

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

ssh [email protected]

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

65
timaschew

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

私はWindowsでDocker Toolbox(Docker Machine)を使用しています。

docker-machine -D ssh defaultの場合、SSHパラメーターは次のようになっている必要があります。

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

ほら、PuTTY/MobaXtermの設定を一致するように変更すると、コンテナーにSSHで接続できます。

25

そこにいるハッカーのために、「アクティブな」ドッカーマシンにsshするスクリプトを以下に示します。また、これにより、ssh_key、ssh_port、およびssh_userの値が提供され、localhostとVMの間でrsyncなどの処理を実行できるようになります。

#!/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行ずつ貼り付けると、機能します。または、スクリプトを関数にして、引数として名前を入力します。

9
robert

何らかの理由でdocker-machine sshではなくsshコマンドを使用したい場合は、

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

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

2
zee