项目场景:
项目场景:使用docker部署mysql,minio,redis,nacos等基础服务
问题描述
为了方便,我是用腾讯云的服务器自定义的镜像创建了一台新的服务器,然后重启里面的容器,本地连接发现mysql,minio可以访问,但是redis和nacos访问不了。
原因分析:
这就很离谱啊,之前这个镜像都部署在轻量应用服务器上,都正常运行,为啥转移到云服务器上就不行了,关键是有的容器可以访问,有的不行。检查一下两种服务器的区别,发现新部署的云服务器绑定了一个弹性网卡,除了这个之外,没有其他区别,那就先针对这个看看,,既然服务器有网卡的区别,那里面的容器有的可以访问,有的不行,是不是这些容器配置的网卡有问题。后来发现使用默认网络的容器都不能对外访问,使用自定义网络的容器可以对外访问,那就先把使用默认网络的容器迁到自定义网络上来,迁移完成后,容器都可以访问了,这问题解决了。至于默认网络无法对外访问的原因还没找到。莫非是弹性网卡和docker默认网络的网卡不能互通的原因?希望有看到的大神能指导指导吧
解决方案:
1.创建新的桥接网络
docker network create -d bridge [网络名]
2.将之前的容器和默认的网络断开连接
docker network disconnect [网络名] [容器名]
3.容器连接新的网络
docker network disconnect [网络名] [容器名]
4.重启容器
docker restart [容器名]