首先说明一下我想要做的效果,是为了单个 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 后,恢复正常
有没有大佬懂
创建自定义网络之前
创建之后
![]() | 1 lcdtyph 2021-07-01 16:57:19 +08:00 via iPhone …没有给拓扑,我猜是你外网(相对于 mynet )的网段也是 192.168.1.0/24 |
![]() | 2 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 是自动分配的地址池。 |
3 bobzhangyong 2021-07-01 17:31:28 +08:00 docker 默认的网络是一个私有网络, 使用 nat 和宿主机沟通, 你需要使用-p 参数把 docker 里面的端口映射到宿主机,通过宿主机 ip 和 docker 映射的端口访问。 我感觉你想要 docker 里面的网络和 宿主机在一个网段,并被宿主机外面的机器访问, 可以看看--network=host 参数,这个和宿主机共享网卡。 |
4 RexG OP @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> |
5 RexG OP @bobzhangyong 不是啊,就是 docker 单容器走旁路由,不妨碍其他容器,至于容器的 ip 不管 |
![]() | 7 eluotao 2021-07-05 16:18:05 +08:00 借此问个问题: 用 docker 创建自定义网络 把 mysql 添加到自定义网络 连接很卡 有知道原因的吗? |