如何在私人服务器上使用docker-machine?

Sho*_*kie 4 linux docker docker-machine

我想在运行CentOS7的服务器上安装docker主机(如果重要的话,它在我的PC上的Virtualbox中运行).

我知道有多个云提供商(亚马逊,谷歌,DigitalOcean等)的驱动程序,但如果我想使用自己的私人服务器,我无法弄清楚该做什么.

我尝试使用--driver generic客户操作系统的IP,以及我创建和使用的SSH密钥ssh-keygen,ssh-copy-id但我得到了

$ docker-machine create -d generic --generic-ip-address=<IP> --generic-ssh-key ~/.ss
h/id_rsa --generic-ssh-user <user> centos

Running pre-create checks...
Creating machine...
(centos) Importing SSH key...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with centos...
Error creating machine: Error running provisioning: exit status 1
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

这与我在Virtualbox中安装CentOS的事实有关吗?

Xio*_*Jin 7

是的,您可以使用Linux服务器上的docker-machine配置和控制docker-engine,即导入现有的Linux服务器作为Docker Machine.这有几个要求:

  1. 仅支持少数操作系统,请参阅https://docs.docker.com/machine/drivers/os-base/.目前对CentOS的支持是实验性的
  2. 您的SSH密钥需要没有密码或由其管理ssh-agent.
  3. 您的服务器上的用户帐户需要能够在没有密码的情况下运行sudo(请参阅此链接/sf/answers/1725388941/了解如何操作)

满足要求后,您可以使用以下方法之一将服务器导入Docker Machine

  1. 如果您的SSH密钥没有密码

    docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-key key-file --generic-ssh-user username machine-name
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您ssh-agent用来管理密钥

    docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-user username machine-name
    
    Run Code Online (Sandbox Code Playgroud)

然后,您将能够使用docker-machine本地计算机上的命令来控制此远程服务器.这意味着您可以启动,停止,终止,重启服务器,因此请谨慎使用

此外,一般来说,由于开头列出的要求,以及您将能够停止或终止服务器的事实,我不建议这样做.SSH进入您的服务器并从那里做一切都更安全.