装好了docker,以及 ufw 然后禁用了 3000 端口, ufw deny 3000

并且启动了一个容器 启动命令是这样的 docker run -it -p 3000:3000 python 但之后发现一个问题, IP:3000 居然可以访问到

查询资料得知, 淦, 发现这是个陈年老问题了 查到一个好用的 repo, https://github.com/chaifeng/ufw-docker 并且按照他的教程进行了设置

但是紧接着发现了问题 这样设置完之后, 开放端口3000(ufw allow 3000), 居然不生效了 看了下 readme 显示 现在外部就已经无法访问 Docker 发布出来的任何端口了,但是容器内部以及私有网络地址上可以正常互相访问,而且容器也可以正常访问外部的网络。 显然这不是我想要的结果

最终在stackoverflow找到了符合我需求的解决方案

cat << EOF >> /etc/docker/daemon.json
{
     "iptables": false
}
EOF

echo "DOCKER_OPTS=\"--iptables=false\"" >>  /etc/default/docker
service docker restart

-参考资料: https://stackoverflow.com/a/67641547