如何使用Hyper-V连接到网络设置上的docker服务器

时间:2016-02-16 17:46:51

标签: networking docker hyper-v docker-machine

基本上我的问题是:如何连接到网络上的泊坞主机?

背景

我们有一台Windows Server 2012计算机,我想从中运行一个docker引擎。

我设法使用docker-machine和hyperv驱动程序运行它。我还成功地让一个docker主机在本地使用VirtualBox在我的计算机上工作,并且一直在使用它。

为了便于在永久设置上为网络上的其他人访问docker,我想在服务器上使用Hyper-V的docker主机实例。

在我寻找答案时,我无法在网络上找到任何配置主机,只能在本地和云端找到。

我想知道我必须使用哪些命令将本地docker-machine连接到服务器的docker主机,并将其用作活动docker主机?

1 个答案:

答案 0 :(得分:0)

有一篇博客文章解释了如何添加带有通用驱动程序的IP的docker引擎,以及您需要经历的一些额外步骤。

ADDING AN EXISTING DOCKER HOST TO DOCKER MACHINE : A FEW TIPS

SSH密钥

证书的底部解释了在连接create命令后如何使用远程docker引擎

旧答案

要成功创建/连接,本地计算机必须能够ssh到远程docker引擎,而不仅仅是托管docker引擎的服务器。这意味着在本地计算机上生成并添加了公钥(使用puttygen或ssh-keygen),并且OpenSSH RSA公钥已添加到远程docker引擎上~/.ssh/authorized_keys中的授权密钥列表中。

OpenSSH RSA公钥的一个例子(因为我对这些格式感到困惑):

ssh-rsa AAAAB3NzaC1kc3MAAACBAJ3hB5SAF6mBXPlZlRoJEZi0KSIN+NU2iGiaXZXi9CDrgVxTp6/sc56UcYCp4qjfrZ2G3+6PWbxYso4P4YyUC+61RU5KPy4EcTJske3O+aNvec/20cW7PT3TvH1+sxwGrymD50kTiXDgo5nXdqFvibgM61WW2DGTKlEUsZys0njRAAAAFQDs7ukaTGJlZdeznwFUAttTH9LrwwAAAIAMm4sLCdvvBx9WPkvWDX0OIXSteCYckiQxesOfPvz26FfYxuTG/2dljDlalC+kYG05C1NEcmZWSNESGBGfccSYSfI3Y5ahSVUhOC2LMO3JNjVyYUnOM/iyhzrnRfQoWO9GFMaugq0jBMlhZA4UO26yJqJ+BtXIyItaEEJdc/ghIwAAAIBFeCZynstlbBjP648+mDKIvzNSS+JYr5klGxS3q8A56NPcYhDMxGn7h1DKbb2AV4pO6y+6hDrWo3UT4dLVuzK01trwpPYp6JXTSZZ12ZaXNPz7sX9/z6pzMqhX4UEfjVsLcuF+ZS6aQCPO0ZZEa1z+EEIZSD/ykLQsDwPxGjPBqw= rsa-key-20160224

当我尝试exit status 255进入docker ssh时,远程泊坞窗引擎中没有此密钥给了我ssh docker@192.168.1.165。此时,只有常规> docker-machine create --driver generic --generic-ip-address 192.168.1.165 --generic-ssh-user %USERNAME% vm > docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Running tcp://192.168.99.101:2376 v1.10.1 vm - generic Running tcp://192.168.1.165:2376 Unknown 有效。准备好重复上述过程。

文章还提到了sudo,但是Hyper-V驱动程序使用的boot2docker映像已经允许无密码的sudo,因此部分已经完成。

<强>端口

确保允许TCP端口2376连接到远程docker引擎,通过服务器的防火墙规则,物理防火墙等。

要运行的命令

然后此命令将远程引擎连接到docker-machine:

vm

%USERPROFILE%\.docker\machine\machines\<server's local docker engine name>是网络中新添加的docker引擎,192.168.1.165是服务器上docker引擎的IP。

<强>证证书

如果这样做,只需将证书(ca.pem,ca-key.pem,cert.pem,key.pem)从远程服务器目录docker-machine regenerate-certs复制到本地计算机上的相同位置即可保持联系。 使用> IF /F "tokens=*" %G ('docker-machine env vm') do %G ,因为这会禁用其他计算机对该docker引擎可能具有的任何连接,包括服务器本身。

有效

然后最终激活引擎完成连接。

docker-machine create --driver none --url=tcp://192.168.1.165:2376 <name>

注意:This issue指出命令Mage_Checkout_Block_Onepage_Shipping_Method_Available也应添加远程计算机的docker引擎,如果&#34; none&#34;司机将在未来的版本中工作。