docker-machine ssh
预计阅读时间:3分钟
使用SSH登录或在计算机上运行命令。
要登录,只需运行docker-machine ssh machinename
:
$ docker-machine ssh dev
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
docker@boot2docker:~$ ls /
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
您还可以通过将docker-machine ssh
命令直接附加到命令中来指定要远程运行的
命令,就像常规ssh
程序一样:
$ docker-machine ssh dev free
total used free shared buffers
Mem: 1023556 183136 840420 0 30920
-/+ buffers: 152216 871340
Swap: 1212036 0 1212036
带标志的命令也可以工作:
$ docker-machine ssh dev df -h
Filesystem Size Used Available Use% Mounted on
rootfs 899.6M 85.9M 813.7M 10% /
tmpfs 899.6M 85.9M 813.7M 10% /
tmpfs 499.8M 0 499.8M 0% /dev/shm
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
/dev/sda1 18.2G 58.2M 17.2G 0%
/mnt/sda1/var/lib/docker/aufs
如果您正在使用下一节中详细介绍的“外部” SSH类型,则可以ssh
在生成的命令中包含其他参数以传递给二进制文件(除非它们与Docker Machine生成的命令的任何默认参数冲突)。 。例如,以下命令将端口8080从default
计算机转发到localhost
您的主机上:
$ docker-machine ssh default -L 8080:localhost:8080
不同类型的SSH
调用Docker Machine时,它会检查您是否有
ssh
本地的二进制二进制文件,并尝试将其用于需要运行的SSH命令,无论它们是操作(例如创建)的一部分还是用户请求的直接地。如果未ssh
在本地找到外部二进制文件,则默认使用来自crypto / ssh的本机Go实现
。这在您可能无法访问传统UNIX工具的情况下很有用,例如,如果您在Windows上使用Docker Machine而不安装msysgit的情况。
在大多数情况下,您无需担心此实现细节,并且Docker Machine开箱即用。但是,如果您有意使用Go本机版本,则可以使用全局命令行标志/环境变量来执行此操作,如下所示:
$ docker-machine --native-ssh ssh dev
两种方法之间的行为有所不同,因此如果遇到任何问题或不一致,请报告它们。
机器,ssh,子命令