这个好像也是openwrt的问题。。
临时方法,用host网络解决
例如创建一个支持sshd的alpine
|
|
当然不能和宿主机的端口冲突。。。 这个问题不算彻底解决 ,用host的方式 如果多个容器使用同样的默认端口 就 gg了
彻底解决
如果要彻底解决,还是要修改防火墙设置
打开 openwrt的网络设置,Luci>网络>防火墙>Luci>网络>防火墙>转发:接受 (Forward:accept)http://**/cgi-bin/luci/admin/network/firewall
然后 shell登录到openwrt 执行命令
iptables -t nat -A POSTROUTING -s 172.17.0.1/16 ! -o docker0 -j MASQUERADE
注意172.17.0.1
要修改成的你自己的docker的桥接地址段
查看方式
|
|
最后需要重启一下docker
/etc/init.d/dockerd restart
进阶
把docker作为内网的一台机器使用
因为没有系统的学习过docker,简单看了一下手册就用了多年,一直不知道docker的虚拟网络是怎么玩的,在一次使用路由器的国产垃圾固件爱快的时候发现了他默认的docekr网络模式,然后才去翻看手册
可以实现,自定义docker的ip端, 并实现 网内机器互联,并可以在路由上直接转发对应的端口
docker network create --subnet=10.0.100.1/24 mynet # 删除命令 docker network rm mynet
docker run -i -t -d --name alpine-188 --network=mynet --ip 10.0.100.188 --privileged=true --restart=always alpine:sshd-autoboot.sh2222 sh /autoboot.sh