如何在私服上使用docker-machine?
How to use docker-machine on a private server?
我想在服务器 运行 CentOS7 上安装 docker 主机(如果重要的话,那是我 PC 上 Virtualbox 中的 运行)。
我知道有多个云提供商(Amazon、Google、DigitalOcean 等)的驱动程序,但我不知道如果我想使用自己的私有服务器该怎么做。
我试过使用 --driver generic
来宾 OS 的 IP,以及我使用 ssh-keygen
和 ssh-copy-id
创建和复制的 SSH 密钥,但我得到了
$ 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
我做错了什么?
这与我在 Virtualbox 中安装了 CentOS 有关系吗?
是的,您可以使用 docker-machine
在 linux 服务器上配置和控制 docker-engine
,即将现有的 linux 服务器导入为 Docker Machine
。对此有几个要求:
- 仅支持少数 OS,请参阅 https://docs.docker.com/machine/drivers/os-base/。对 CentOS 的支持目前处于试验阶段
- 您的 SSH 密钥需要没有密码,或者由
ssh-agent
管理。
- 您在服务器上的用户帐户需要能够 运行 无需密码的 sudo(请参阅此 link 如何操作)
满足要求后,您可以使用以下方法之一将服务器作为 Docker 机器导入
如果您的 SSH 密钥没有密码
docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-key key-file --generic-ssh-user username machine-name
如果您使用ssh-agent
管理您的密钥
docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-user username machine-name
然后您就可以在本地计算机上使用 docker-machine
命令来控制此远程服务器。 这意味着您可以启动、停止、终止、重启服务器,因此请格外小心使用它
此外,一般来说,由于开头列出的要求,以及您将能够停止或终止 服务器的事实,我不建议这样做这个。通过 SSH 连接到您的服务器并从那里执行所有操作要安全得多。
我想在服务器 运行 CentOS7 上安装 docker 主机(如果重要的话,那是我 PC 上 Virtualbox 中的 运行)。
我知道有多个云提供商(Amazon、Google、DigitalOcean 等)的驱动程序,但我不知道如果我想使用自己的私有服务器该怎么做。
我试过使用 --driver generic
来宾 OS 的 IP,以及我使用 ssh-keygen
和 ssh-copy-id
创建和复制的 SSH 密钥,但我得到了
$ 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
我做错了什么?
这与我在 Virtualbox 中安装了 CentOS 有关系吗?
是的,您可以使用 docker-machine
在 linux 服务器上配置和控制 docker-engine
,即将现有的 linux 服务器导入为 Docker Machine
。对此有几个要求:
- 仅支持少数 OS,请参阅 https://docs.docker.com/machine/drivers/os-base/。对 CentOS 的支持目前处于试验阶段
- 您的 SSH 密钥需要没有密码,或者由
ssh-agent
管理。 - 您在服务器上的用户帐户需要能够 运行 无需密码的 sudo(请参阅此 link 如何操作)
满足要求后,您可以使用以下方法之一将服务器作为 Docker 机器导入
如果您的 SSH 密钥没有密码
docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-key key-file --generic-ssh-user username machine-name
如果您使用
ssh-agent
管理您的密钥docker-machine create -d generic --generic-ip-address server-ip --generic-ssh-user username machine-name
然后您就可以在本地计算机上使用 docker-machine
命令来控制此远程服务器。 这意味着您可以启动、停止、终止、重启服务器,因此请格外小心使用它
此外,一般来说,由于开头列出的要求,以及您将能够停止或终止 服务器的事实,我不建议这样做这个。通过 SSH 连接到您的服务器并从那里执行所有操作要安全得多。