Docker Machine Generic驱动

Generic 通用

创建一个machines通过SSH使用已经存在的虚拟机或是主机。

这是很有用的如果你使用的主机提供商没有直接的支持,或是你想导入已经存在的主机让Docker Machine去管理。

这个驱动将执行一系列创建的人物:

  • 如果docker没有运行在主机上,它将被自动安装.
  • 它会更新主机的软件包(apt-get update, yum update).
  • 为了确保docker daemon的安全它会生成证书.
  • docker daemon 将会重启,因此所有正在运行的容器将会停止.
  • 主机的hostname将被更改为machine name.

Example

创建一个machine的实例,需要指定--driver generic,主机的IP地址,DNS名和SSH私钥路径去连接它.

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key ~/.ssh/id_rsa \
  vm

Sudo privileges

使用SSH进入主机的user可以通过--generic-ssh-user标识指定。这个用户必须有passworld-less的特权,如果不是这样,你需要去编辑sudoers文件去配置user作为一个sudoer with NOPASSWD. 参考 https://help.ubuntu.com/community/Sudoers.

Options

  • --generic-engine-port:Docker Daemon使用的端口(注意:这个标识在boot2docker中无效)
  • --generic-ip-address:必需字段,主机IP地址.
  • --generic-ssh-key:SSH user的私钥路径.
  • --generic-ssh-user:SSH连接使用的username.
  • --generic-ssh-port:SSH使用的端口.

注意: 你必须使用一个Machine支持的基础操作系统。

环境变量和默认值:

CLI option Environment variable Default
--generic-engine-port GENERIC_ENGINE_PORT 2376
--generic-ip-address ```GENERIC_IP_ADDRESS`` -
--generic-ssh-key ```GENERIC_SSH_KEY`` -
--generic-ssh-user ```GENERIC_SSH_USER`` root
--generic-ssh-port ```GENERIC_SSH_PORT`` 22

推荐阅读更多精彩内容