都匀网站建设,基于html的个人网站的设计与实现论文,推动重大项目加快建设,查询建设资质的网站修改虚拟机静态ip的坑#xff08;与docker有关#xff09; 由于我换了个移动wifi#xff0c;我想把自己电脑上的虚拟机的静态ip也更改一下#xff0c;但是改完静态ip之后我发现我可以ping得通我的虚拟机ip#xff0c;但是用telnet命令访问我的3306端口却访问不通了#x…修改虚拟机静态ip的坑与docker有关 由于我换了个移动wifi我想把自己电脑上的虚拟机的静态ip也更改一下但是改完静态ip之后我发现我可以ping得通我的虚拟机ip但是用telnet命令访问我的3306端口却访问不通了以至于我连不到我的mysql。 一、问题排查思路
首先由于我的虚拟机里面的软件都是用docker安装的所以我就用
docker ps来查看我的运行中的容器 然后发现其实我的容器都是正常启动的但是通过我自己的主机死活连接不上我虚拟机里面的mysql于是我就想是不是防火墙原因
systemctl status firewalld.service通过上面的命令发现我的防火墙根本就没有开。
我在外网用下面的命令测试连接虚拟机与虚拟机中的mysql.
ping 虚拟机的ip 这里是可以ping的通的
telnet 虚拟机ip 3306 发现还是访问不通我的mysql没办法再用浏览器链接试一下我安装的kibana容器。 发现kibana也用不了。此时我就把问题矛头指向了我的docker怀疑是不是重新配置了虚拟机的静态ip之后要把docker重启一下因为docker应该是有一个代理容器ip与宿主机ip的过程。于是我就用下面的命令重启了我的docker。
sudo systemctl restart docker果然重启了docker之后通过我的主机就可以连接上我虚拟机里面的mysql了。
但是我的kibana还是连不上还是比较纳闷。而且通过我的主机telnet访问kibana是可以访问得通的但是浏览器还是访问不到。
没办法只能看一下kibana的启动日志了。
docker logs kibana的容器id发现如下情况
{type:log,timestamp:2023-10-31T06:29:53Z,tags:[warning,elasticsearch,admin],pid:7,message:Unable to revive connection: http://172.20.10.11:9200/}
{type:log,timestamp:2023-10-31T06:29:53Z,tags:[warning,elasticsearch,admin],pid:7,message:No living connections}顿时又恍然大悟了kibana想要链接我的elasticsearch但是连得还是以前的ip于是需要修改kibana的配置
docker run --name kibana -e ELASTICSEARCH_HOSTShttp://172.20.10.11:9200 -p 5601:5601 \
-d kibana:7.4.2172.20.10.11为自己的虚拟机ip ifconfig命令查看这是之前绑定启动kibana容器与elasticsearch的命令所以得修改容器我询问chatgpt得得到如下结论。
使用 Docker 运行容器时你可以使用 docker update 命令来更改容器的配置。不过这个命令不支持更改容器的主机端口映射。
如果需要更改容器端口映射你需要删除原先的容器并重新创建一个新的容器来实现更改。以下是大致的步骤 停止并删除现有的 Kibana 容器 docker stop kibana
docker rm kibana使用新的命令重新运行 Kibana 容器并更新 Elasticsearch 的地址 docker run --name kibana -e ELASTICSEARCH_HOSTShttp://NEW IPADDR -p 5601:5601 \ -d kibana:7.4.2大功告成。
二、总结
通过以上情况问题我总结了我的几个结论观点
重新配置了虚拟机的静态ip之后如果之前是使用docker安装的mysql等容器需要重启docker与容器。dkcoer应该是有一个代理宿主机与容器之间的一个ip。kibana容器启动的时候一般是基于安装的elasticsearch的。静态ip修改了之后kibana自然也得重新绑定这里是借鉴的gpt的说法删除容器之后重新绑定启动的一个新的kibana a容器启动的时候一般是基于安装的elasticsearch的。静态ip修改了之后kibana自然也得重新绑定这里是借鉴的gpt的说法删除容器之后重新绑定启动的一个新的kibana解决问题的步骤无非就是先看容器是否启动然后再看防火墙是否设置了端口权限再重启容器查看启动日志最后再定位问题。