一、问题描述:

我本地有一个mysql,端口是3306,然后我用docker开启了一个mysql容器,端口还是3306,导致我用docker上的mysql的时候没法用,于是想到端口映射出了问题,就把docker上的mysql的端口修改一下。

二、可解决问题:

(1) 在不删除现有容器的情况下, 修改原有容器的端口映射;
(2) 创建容器的时候指定了一个端口映射, 但是创建之后的容器存在多个端口映射;

三、解决方案:

1、停止容器

docker stop 容器id

2、停止docker服务

systemctl stop docker

3、修改这个容器的hostconfig.json(对应下面的文件1)的端口

cd /var/lib/docker/containers
vim hostconfig.json

找到 “PortBindings”,并且修改如下:(我把3306改成了3307)

"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}

4.config.v2.json(对应文件2)里面也记录了端口,也要修改

找到 “Ports”,修改如下:(我把3306改成了3307)

"Ports":{"3306/tcp":[{"HostIp":"0.0.0.0","HostPort":"3307"}],"33060/tcp":null}

5.重启docker服务

systemctl start docker

6.重启mysql容器

docker start mysql容器名或mysql容器ID
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐