docker 自定义网络导致的问题

2021-07-01 16:28:47 +08:00
 RexG

首先说明一下我想要做的效果,是为了单个 docker 容器能够通过旁路由 192.168.1.254 进行联网。 根据宿主机设置网关为 192.168.1.254 类推为 docker 设置网关

使用这条命令创建自定义网络 docker network create --subnet 192.168.1.0/24 --gateway 192.168.1.254 mynet

但是创建之后,会导致浏览器访问旁路由 192.168.1.254 的时候,页面显示的不是旁路由,而是宿主机 192.168.1.47 的页面,也就是我没办法访问到旁路由页面了,使用 docker 运行容器并指定 mynet 网络的话,好像也没有网络,安装 curl 会一直卡在那里不动。

删除自定义网络 mynet 后,恢复正常

有没有大佬懂

创建自定义网络之前

创建之后

1316 次点击
所在节点    Docker
7 条回复
lcdtyph
2021-07-01 16:57:19 +08:00
…没有给拓扑,我猜是你外网(相对于 mynet )的网段也是 192.168.1.0/24
ScotGu
2021-07-01 17:05:15 +08:00
没有 macvlan ?

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.254 --ip-range=192.168.1.40/29 -o parent=ens192 bridge-HomeLan

ens192 为网卡名称。
ip-range 是自动分配的地址池。
bobzhangyong
2021-07-01 17:31:28 +08:00
docker 默认的网络是一个私有网络, 使用 nat 和宿主机沟通, 你需要使用-p 参数把 docker 里面的端口映射到宿主机,通过宿主机 ip 和 docker 映射的端口访问。

我感觉你想要 docker 里面的网络和 宿主机在一个网段,并被宿主机外面的机器访问, 可以看看--network=host 参数,这个和宿主机共享网卡。
RexG
2021-07-02 14:28:18 +08:00
@lcdtyph 大概是这样吧,没工具随便画了画

<a href="https://imgtu.com/i/R6DzRI"><img src="https://z3.ax1x.com/2021/07/02/R6DzRI.png" alt="R6DzRI.png" border="0" /></a>
RexG
2021-07-02 14:43:01 +08:00
@bobzhangyong 不是啊,就是 docker 单容器走旁路由,不妨碍其他容器,至于容器的 ip 不管
RexG
2021-07-02 14:56:31 +08:00
@ScotGu 厉害,就是这个,不过网络名字最好不要大写,有点小问题
eluotao
2021-07-05 16:18:05 +08:00
借此问个问题:
用 docker 创建自定义网络 把 mysql 添加到自定义网络 连接很卡 有知道原因的吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX