前言:这几天项目不忙,寻思着自己弄点服务器学一下。前期很顺利,md用docker运行Nacos时,怎么都访问不通。(后来发现是自己犯蠢了,但是还是想研究下为什么,发布此帖子以警示自己不够细心。)
1.下面是我用docker启动nacos成功打印的log
2.然后我就用这个日志里的IP地址进行访问,但是始终访问不通。
3.查阅资料发现是docker中的默认分配的虚拟网络IP地址,外部可能无法访问(大多数都是无法访问),这个默认分配的虚拟网络ip是在安装docker时就创建好了,所以说问题到这已经很明了了,就是docker默认虚拟网络导致的,原因就是自己没有设置docker的网段。
4.我设置好ip和ip网段就可以正常访问了(慎用啊,这里设置了后期其实也挺麻烦的,大家默认就完了,我只是复盘一下我的问题,不引导大家创建自定义网段)
//创建自定义网络
docker network create --subnet=172.18.0.0/16 --gateway=172.18.0.1 mynetwork
//运行容器并加入自定义网络
docker run --network=mynetwork -itd --name mycontainer <image_name>
注意:即使不设置也没关系,只要启动成功了,本身你自己的宿主机ip+开通好的端口号就可以访问(前提是你的端口号已经开通好了)
5.宿主机开放8848端口步骤
1、开启防火墙
systemctl start firewalld
2、查询8848端口是否开放
firewall-cmd --query-port=8848/tcp
3、开放8848端口
firewall-cmd --add-port=8848/tcp --permanent
4、重载入添加的端口
firewall-cmd --reload
5、关闭防火墙
systemctl stop firewalld
其他:
查询防火墙状态
systemctl status firewalld
移除8848端口
firewall-cmd --permanent --remove-port=8848/tcp
设置开机启用防火墙
systemctl enable firewalld.service
设置开机禁用防火墙
systemctl disable firewalld.service