Docker跨主机访问
一. 为什么要跨主机访问?
在工作中docker容器会部署在不同的服务器中,那么就涉及到不同的机器间容器的相互通信。我们都知道docker-compose用于容器编排,但是只能解决单台服务器上容器间的通信问题。在本课程中我们将实现不同的服务器间容器的通信。
我们采用的技术是weave,属于第三方网络项目,基于UDP的数据传输,其工作原理是创建一个连接多个主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到上面,互相通信。
二. 安装weaver
2.1 主机的规划
node1 | node2 |
---|---|
192.168.2.217 | 192.168.2.250 |
注意:两台服务的防火墙必须都要开启。
2.2 weave的安装
A. 下载weave脚本 https://github.com/weaveworks/weave
下载 weave文件,或者直接将其内容拷贝到 /usr/local/bin 目录下,然后执行如下命令:
chmod a+x /usr/local/bin/weave
B. 分别执行如下两个命令:
weave version
weave launch
执行完如上的命令后会下载三个镜像,并且会自动启动一个容器,如下图所示:
C. 在另外一台机器上执行同样的命令。
2.3 通信配置
A. 将各主机间的weave实现互联
weave connect 192.168.2.217 #在192.168.2.250机器上执行
weave connect 192.168.2.250 #在192.168.2.217机器上执行
B. 各自启动一个centos容器
docker run -it centos /bin/bash
C.使用weave规划网络
weave attach 172.10.3.23/24 e2e4909711b7 # 192.168.2.250
weave attach 172.10.3.24/24 e2e4909711b7 # 192.168.2.217


D. 分别进入到两个容器中互 ping
三.查看网络情况
两台服务器都新创建了相同的网络,且在同一网段
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类