gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:23:47 25 4
gpt4 key购买 nike

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

背景:

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

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

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

在我寻找答案的过程中,我找不到任何关于在网络上配置主机的内容,只有在本地和云上。

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

最佳答案

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

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

SSH key

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

旧答案

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

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

在远程 docker 引擎中没有这个 key 给了我一个 exit status 255当我试图 docker ssh进去。此时,只有常规 ssh docker@192.168.1.165工作。准备重复上述过程。

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

端口

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

运行命令

然后此命令将远程引擎连接到 docker-machine:
> 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
vm是网络上新添加的docker引擎,192.168.1.165是服务器上docker引擎的IP。

证书

如果可行,只需从远程服务器目录 %USERPROFILE%\.docker\machine\machines\<server's local docker engine name> 复制证书(ca.pem、ca-key.pem、cert.pem、key.pem)到本地计算机上的同一位置应保持连接。 不要使用 docker-machine regenerate-certs因为这会禁用其他计算机可能与该 docker 引擎的任何连接,包括服务器本身。

活跃

然后最终使引擎处于事件状态,从而完成连接。
> IF /F "tokens=*" %G ('docker-machine env vm') do %G

注: This issue指出命令 docker-machine create --driver none --url=tcp://192.168.1.165:2376 <name>如果“无”驱动程序在 future 版本中工作,还应该添加远程机器的 docker 引擎。

关于networking - 如何使用 Hyper-V 连接到网络设置上的 docker 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35439572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com