错误原因:
在防火墙中默认 nat 是 REJECT的,所以端口映射被拒绝。
解决方法:
vim /etc/sysconfig/iptables
##注释掉下面这一行,这行的意思是拒绝掉所有的FORWARD,拒绝的提示信息是icmp-host-prohibited(禁止)
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
#重启iptables
systemctl restart iptables.service
网上其他的解决方法:基本都是重置docker0网络,重启docker
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
##重启docker服务
systemctl restart docker
网上有的说是只重启docker即可,即只执行systemctl restart docker,我自己也是这样解决掉问题的。
如果还是不行的话,就按照上面的方式试一试,可能是网络原因造成的
可以参考
docker学习笔记之七:解决 -i docker0: iptables: No chain/target/match by that name.
这两篇文章写的还是比较透彻的,主要就是防火墙映射转发之类的,需要了解下防火墙相关的只是,因此暂时不做深入了解,等有时间了再好好研究防火墙。