基本上我的问题是:如何连接到网络上的泊坞主机?
背景
我们有一台Windows Server 2012计算机,我想从中运行一个docker引擎。
我设法使用docker-machine和hyperv驱动程序运行它。我还成功地让一个docker主机在本地使用VirtualBox在我的计算机上工作,并且一直在使用它。
为了便于在永久设置上为网络上的其他人访问docker,我想在服务器上使用Hyper-V的docker主机实例。
在我寻找答案时,我无法在网络上找到任何配置主机,只能在本地和云端找到。
我想知道我必须使用哪些命令将本地docker-machine连接到服务器的docker主机,并将其用作活动docker主机?
答案 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;司机将在未来的版本中工作。