docker-machine版本0.2.0 docker版本1.6.2
我正在使用docker-machine使用VirtualBox创建计算机。一切正常,但我想使用ssh进入机器本身,但没有找到执行此操作的说明。我可以连接到ssh端口:
ssh $(docker-machine ip dev)
但是我不知道要使用什么用户名/密码/身份文件。
docker-machine版本0.2.0 docker版本1.6.2
我正在使用docker-machine使用VirtualBox创建计算机。一切正常,但我想使用ssh进入机器本身,但没有找到执行此操作的说明。我可以连接到ssh端口:
ssh $(docker-machine ip dev)
但是我不知道要使用什么用户名/密码/身份文件。
docker exec -it my_container /bin/bash
的Docker方法
Answers:
您只需运行即可登录docker-machine主机
docker-machine ssh default
(在此处使用“默认”主机)
身份文件应存储在下~/.docker/machine/machines
。如果要登录到容器(而不是主机),请docker exec
按照user2915097的建议使用。
如果您确实需要通过这样做,则可以ssh
使用docker 1.8.2
初始化docker:
eval "$(docker-machine env default)"
从默认的docker机器获取IP:
docker-machine ip default
这打印出这样的东西: 192.168.99.100
ssh docker@192.168.99.100
密码是,tcuser
但您也可以使用身份文件,请参阅其他答案
tcuser
。请您透露您的秘密吗?:-)
最后,我找到了答案:
我在Windows上使用Docker Toolbox(Docker机器)。
如果我docker-machine -D ssh default
发现SSH参数应该为:
主机:本地主机
端口:51701
用户:泊坞窗
密钥:.docker \ machine \ machines \ default \ id_rsa
当我更改Putty / MobaXterm设置以匹配时,我可以通过SSH进入容器。
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}
docker-machine inspect
?它在Driver->IPAddress
变量中打印了非本地地址
对于那里的黑客来说,这是一个脚本,它将通过ssh进入“活动”的docker-machine。这也为您提供了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
您可以将其复制并粘贴到终端中,一行一行地行,它将起作用。或者,使脚本成为函数,然后将其名称作为参数输入。
对于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)列出可用的虚拟机。
> ~/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
如您所见,我能够通过SSH进入docker-machine / instance。
docker@default:~$ uname -a
Linux default 4.1.19-boot2docker #1 SMP Thu Apr 7 02:41:05 UTC 2016 x86_64 GNU/Linux
您还可以按照此>操作方法-docker
我们也可以通过以下命令ssh进入docker-
docker exec -it / bin / sh