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子命令