windows系统中的虚拟机, 下载docker跑tomcat镜像的时候总是访问不到tomcat的启动页面,最后查看是防火墙未关闭,
关闭防火墙
systemctl stop firewalld.service
由于每次重启虚拟机的时候,centos又会重新开启防火墙,所以应该设置防火墙开启关闭
systemctl disable firewalld.service
本来以为完事了,最后发现关闭防火墙的时候,运行docker中的tomcat总是会报错
[root@localhost elasticSearch]# docker run -d --name es2-node -p 9201:9200 -p 9301:9300 --restart=always -v /apps/elasticSearch/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /apps/elasticSearch/es2_data:/usr/share/elasticsearch/data elasticsearch:5.6.9
a357eb4b695a6fec33f2093267bfe0015acb35fbb81688dd336ed30336e8bd9f
docker: Error response from daemon: driver failed programming external connectivity on endpoint es2-node (38cbd7b4a49c5f32f6ac8f0bf4a4bdf158e50e728b12ba5bbe801f741fc78003): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9301 -j DNAT --to-destination 172.17.0.2:9300 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
实际原因:
docker服务启动时定义的自定义链DOCKER由于某种原因被清掉
重启docker服务及可重新生成自定义链DOCKER
解决方法:
重新启动docker服务
systemctl restart docker
最后别忘记,访问虚拟机中centos的docker的tomcat,将localhost换成宿主机的ip哦!!!!!
ok 解决