Home >> Docker 开放端口导致容器间network失效问题
Docker 开放端口导致容器间network失效问题
2023-03-21 00:23 AtmosphereMao
在容器运行中不删除情况下开放mysql端口,导致服务器无法通过network访问mysql
问题
需将服务器上的项目构建为Git仓库
,则需将项目放到本地进行开发,脑子一热想开放服务器上docker容器中的mysql
的3306
端口。(但容器我又不敢删,不知道他们有没有绑定卷,万一没有删了不就~删库跑路?~)
所以需在容器运行中更改mysql
的端口
一:通过修改配置文件修改docker容器端口映射
- 找到要修改容器的CONTAINER ID
docker ps -a
- 进入该容器目录
docker inspect【CONTAINER ID】| grep Id cd /var/lib/docker/containerid
3.停止容器
docker stop 【CONTAINER ID】
- 停止主机docker服务
systemctl stop docker
- 进入2得到的文件夹内,修改hostconfig.json 和 config.v2.json
vim hostconfig.json 比如新增一个 80 端口,在PortBindings下边添加以下内容,端口配置之间用英文字符逗号隔开
"80/tcp": [
{
"HostIp": "0.0.0.0", "HostPort": "80"
}
]
vim config.v2.json
"ExposedPorts": {
"80/tcp": {}
},
- 重启容器
systemctl start docker
docker start 【CONTAINER ID】
端口成功修改,但发现network
失效了,无法通过主机名db
访问mysql
的容器,但是能curl
到IP地址。
解决方案
将mysql
容器从network
中移出,重新添加
docker network disconnect <network_name> <container_id>
docker network connect --alias db <network_name> <container_id>
即可解决
评论
暂无评论
* 登录后即可评论