如图,我通过docker构建容器时,映射出来的端口是8081,但是通过ip+8081无法访问,在检查了一遍安全组规则是否开放,以及百度以后查到是由于端口被tcp6监听,没有被tcp监听到导致的。
按照如下教程对tcp6进行关闭,并重启httpd:
https://www.cnblogs.com/brady-wang/p/10495341.html
文中命令如下:
sysctl net.ipv6.conf.all.disable_ipv6=1
systemctl restart httpd
重新访问依然打不开。百度出来的其他方案也和上面这个类似,试过几个没有效果,不知道是不是步骤不对的原因。
由于服务器是新添置的,httpd是没有的,查了一下才知道需要安装Apache。(这里其实不太清楚为什么需要这么做,毕竟, 我只是构建一个容器,还要因为一个命令安装Apache么)
早些时候用docker没遇到过这个问题,都是映射出来直接就能访问了,于是打开了以前的一个服务器,上面也是通过docker部署了一个站点,容器都是运行的,只是和这个也一样无法再在浏览器访问了。通过netstat -nlpt查看,发现那边的也是tcp6。
服务器的镜像版本是:CentOS7.6 (安全组入方向已开放所需端口)
docker是通过命令一键安装的(Docker version 19.03.12):
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
enmmmm暂时没有补充了,希望遇到过的大佬指点一下。