环境
- fedora36
- 5.18的内核
- docker官方版本
目的
将物理机器上的容器子网直接暴露在局域网内,不再做麻烦的port forwarding

配置裸机器的docker
给docker一个不同的子网段
- sudo vim /etc/docker/daemon.json { "bip": "172.16.200.1/24" }
重启服务
物理机上重启
sudo systemctl restart docker
配置路由
到物理路由器里面去,华硕的,UI上加上静态路由规则
配置一条 172.16.200.0 mask 255.255.255.0 gw 192.168.50.12 的路由规则
修改物理机防火墙
然后直接干掉防火墙
- sudo systemctl disable --now firewalld
然后我看了FORWARD默认是drop,所有需要全部ACCEPT
- sudo iptables -P FORWARD ACCEPT
测试
从别的机器ping
lemon@LEMON-HP-LAPTOP:~$ ping 172.16.200.2
PING 172.16.200.2 (172.16.200.2) 56(84) bytes of data.
64 bytes from 172.16.200.2: icmp_seq=1 ttl=62 time=18.5 ms
64 bytes from 172.16.200.2: icmp_seq=2 ttl=62 time=18.7 ms
64 bytes from 172.16.200.2: icmp_seq=3 ttl=62 time=22.3 ms
64 bytes from 172.16.200.2: icmp_seq=4 ttl=62 time=18.7 ms
64 bytes from 172.16.200.2: icmp_seq=5 ttl=62 time=18.5 ms
64 bytes from 172.16.200.2: icmp_seq=6 ttl=62 time=18.7 ms
64 bytes from 172.16.200.2: icmp_seq=7 ttl=62 time=18.8 ms
64 bytes from 172.16.200.2: icmp_seq=8 ttl=62 time=21.3 ms
^C
--- 172.16.200.2 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7013ms
rtt min/avg/max/mdev = 18.487/19.430/22.297/1.388 ms
lemon@LEMON-HP-LAPTOP:~$
成功,很好,再试试别的
临时run一个xdp的例子
sudo docker run -it --rm --privileged lemonhall/xdp_demo bash
大概1.1G左右
哦吼,这个例子的拉取是需要密码的 所有需要
sudo docker login
先 然后运行
之后ping 200.3也是ok的
在3号容器里,ping www.baidu.com 也是ok的
容器里,ping 192.168.50.46 其它的物理机器,都是通畅的,自此,裸机配置完毕

https://172.16.200.2:9443/
jH2U6s7s!^ZcYW7R
告别端口转发的痛苦