35

私は OSX を使用しており、次の目的でホスト vm に SSH 接続できるようにしたいと考えています。

  1. ネイティブ Docker 環境にアクセスします。これにより、ポート転送の問題の理解とデバッグが容易になります。
  2. Vagrant rsync は、回復したいディスク領域を食い尽くしている未使用の同期済みディレクトリをたくさん残しているようです。

明確にするために、この質問は、Vagrant プロバイダーが作成する docker コンテナーへの ssh:ing に関するものではなく、Vagrant が作成する中間の boot2docker ホスト vm への ssh:ing に関するものです。

デフォルトの boot2docker をホスト vm として使用しないことが回避策であることはわかっていますが (こちらの回答で説明されています)、それはこの質問の目的ではありません。

4

6 に答える 6

102

Vagrant の boot2docker は、boot2docker の ssh ユーザー名とパスワードを保持します。

VM への SSH

$ boot2docker ssh

Boot2Docker は、生成された SSH キーを使用して自動ログインしますが、マシンに手動で SSH 接続する場合 (またはboot2dockerマネージド VM を使用していない場合)、資格情報は次のとおりです。

user: docker
pass: tcuser

https://github.com/boot2docker/boot2docker#ssh-into-vm

デフォルトでは、ポートはローカル ポートから転送2022されます。これを確認できます:

$ VBoxManage list vms | grep docker
"docker-host_default_1234567890000_1234" {3d66ecf6-4539-47ca-afd2-66f953cd9a3e}
$ VBoxManage showvminfo docker-host_default_1234567890000_1234 | grep ssh
NIC 1 Rule(1):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2022, guest ip = , guest port = 22

そしてログインします:

$ ssh docker@localhost -p 2022
docker@localhost's password: tcuser
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 0.8.0
docker@boot2docker:~$ 
于 2014-06-24T00:14:26.407 に答える
15

2015 年 10 月: Boot2docker は廃止され、docker-machine が推奨されます。ログインします:

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100:2376   

$ docker-machine ssh default
于 2015-10-08T03:19:52.727 に答える
7

boot2dockerssh関数の使用をやめて、次のように「手動で」実行することもできます。

$ ssh \
-i $HOME/.ssh/id_boot2docker \
-p $(boot2docker config 2>&1 | awk '/SSHPort/ {print $3}') \
docker@localhost

への引数-pは通常、ポート 2022 ですが、上記は、必要に応じてプログラムでこれを決定する方法を示しています。

于 2014-08-29T03:02:04.863 に答える
3

SSH を直接使用できます。

ssh docker@$(boot2docker ip)

(パスワード: tcuser、https ://github.com/boot2docker/boot2docker#ssh-into-vm を参照)


また、公開鍵をコピーして boot2docker マシンに貼り付けることもできるため、毎回パスワードを入力する必要はありません。

cat ~/.ssh/id_rsa.pub | ssh docker@$(boot2docker ip) 'cat - >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys'
于 2015-03-02T22:26:20.030 に答える