Docker 17
机器 | Machine

docker-machine ssh

码头机ssh

使用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

当调用DockerMachine时,它将检查是否有可尊敬的ssh二进制文件将在本地使用,并尝试使用它运行的SSH命令,无论它们是创建之类的操作的一部分,还是用户直接请求的操作。如果它找不到外部ssh在本地使用本机go实现时,它将默认使用密码/ssh在您可能无法访问传统UNIX工具的情况下,这是非常有用的,例如如果您在Windows上使用Docker Machine而没有在Windows旁边安装msysgit。

在大多数情况下,您将不必担心这个实现细节,DockerMachine将明智地采取行动。但是,如果您有意使用Go本机版本,可以使用全局命令行标志/环境变量,如下所示:

$ docker-machine --native-ssh ssh dev

这两种方法之间的行为有一些差异,所以如果遇到问题或不一致的地方,请报告。

机器ssh子命令