g3c*_*cko 11 windows networking hyper-v docker docker-for-windows
我在理解Docker for Windows以及网络如何工作方面遇到了一些麻烦.在带有桥接适配器和Ubuntu虚拟机的VirtualBox中,一切正常 - 我可以从我的主机(反之亦然)ping vm.
是有多个Windows机器(不是vms),每个运行一个Docker容器(形成一个存储集群),这些容器需要相互通信(overlay
可能使用网络运行,或者这需要swarm
?).我还需要在外部进行讨论,这是我能够工作的唯一部分,使用docker run -p
选项公开我需要的容器中的端口.
为了详细说明我的过程,我的目标是构建一个在Linux上运行的Amazon S3风格的键值存储(特别是使用Riak KV).由于这需要运行该软件的多台计算机,在我看来,Docker可以带来诸多好处,包括易于设置和部署,以及在Windows上运行基于Linux的软件的框架,这是我目前很容易访问的.
如果我使用默认的网桥在同一主机上运行两个Ubuntu容器,它们可以相互ping通.ifconfig
列出具有172.17 ... ip地址的local和eth0适配器.从这一点来看,它听起来不像我正在寻找的桥,因为我想要多个主机.
如果我运行Ubuntu容器,--network host
我可以从ifconfig
"br-xxxxxxxx"和"vethxxxxxx"适配器获得更多输出.从文档中,
在主机网络堆栈上添加容器
这听起来很有用,但也许我不理解.我知道Docker for Windows运行MobyLinuxVM,并使用Hyper-V适配器和交换机,主机指的是什么?windows pc还是这个VM?有了--network host
,我仍然无法ping容器或从容器ping我的桌面.
似乎Docker的常见用法不是基于Windows的,所以我找不到太多引用.我的用例与Docker的正常使用有很大不同吗?任何人都能指出我在这里缺少的东西吗?
阅读Hyper-V适配器使我看起来除了启动容器之外还需要更改网络适配器设置?我想,我很难理解在windows,hyper-v adapter/switch,ubuntu和docker之间的位置.
Tre*_*van 11
好问题.我赞成它来反击你收到的downvote.问题写得很好,我也没有看到任何问题.也许他们认为它不属于StackOverflow,更适合ServerFault.
这里有一些有用的子弹:
MobyLinuxVM
.Internal
名为的Hyper-V 虚拟交换机DockerNAT
internal
虚拟交换机类型的详细信息(您已经链接到此)overlay
网络确实需要Docker Swarm模式(参见:SwarmKit)这里的底线是:
您尝试解决的方案不适合Docker for Windows.Docker for Windows旨在使软件开发人员能够在安装了Docker Engine的本地Linux VM上编写,调试和测试他们的应用程序.就是这样.Docker for Windows可自动完成设置Hyper-V VM,安装Linux,安装Docker Engine以及从命令行访问它的过程.
"我的计划"下的建议方案对于Docker for Windows来说不合适.相反,我建议设置一个Docker Swarm模式集群.但是,Docker存储比这更复杂.您还需要考虑使用Docker存储驱动程序,该驱动程序在您的Swarm群集Docker主机上启用共享存储.有一种非常受欢迎的叫做Flocker的产品,由ClusterHQ开发.我建议将其作为一种可能的解决方案.
但是,我还建议重新评估你的目标,以及你如何完成它们.Docker可能甚至不是通用共享存储的正确解决方案.
希望这有助于您的努力.
归档时间: |
|
查看次数: |
7020 次 |
最近记录: |