Mot*_*tin 35 vagrant docker boot2docker
我在OSX上,我希望能够通过SSH连接到主机vm,以便:
要明确的是,这个问题不是关于ssh:进入Vagrant提供程序创建的docker容器,而是关于Vagrant创建的中间boot2docker主机vm.
我知道,一个解决方法是不使用默认的boot2docker作为主机VM(如答案解释这里),但这不是这个问题是关于什么的.
小智 100
Vagrant的boot2docker保留了boot2docker的ssh用户名和密码.
SSH进入VM
Run Code Online (Sandbox Code Playgroud)$ boot2docker sshBoot2Docker使用生成的SSH密钥自动登录,但如果您想手动SSH(或者您没有使用
boot2docker托管VM),则凭据是:Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)
然后登录:
$ ssh docker@localhost -p 2022
docker@localhost's password: tcuser
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 0.8.0
docker@boot2docker:~$
Run Code Online (Sandbox Code Playgroud)
Jim*_*oho 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
Run Code Online (Sandbox Code Playgroud)
alf*_*dev 11
您可以使用ssh进入docker主机,vagrant ssh docker-host-id但首先您需要知道docker-host-id.
您可以使用vagrant global-status命令获取所有活动Vagrant环境的列表.
要获取docker-host id,您可以使用grep进行过滤:
vagrant global-status | grep docker-host
你将获得类似于的输出:
68f58d0 default virtualbox running /Users/yourUser/.vagrant.d/data/docker-host
Run Code Online (Sandbox Code Playgroud)
复制第一列id,然后ssh到docker-host:
vagrant ssh 68f58d0
您也可以放弃使用boot2docker的ssh功能并"手动"执行此操作:
$ ssh \
-i $HOME/.ssh/id_boot2docker \
-p $(boot2docker config 2>&1 | awk '/SSHPort/ {print $3}') \
docker@localhost
Run Code Online (Sandbox Code Playgroud)
参数-p通常是端口2022,但上面显示了如何根据需要以编程方式确定.
| 归档时间: |
|
| 查看次数: |
50691 次 |
| 最近记录: |