我本地有一个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改成了3308)
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3308"}]}
4.重启docker服务
systemctl start docker
5.重启mysql容器
docker start mysql容器名或mysql容器ID
停止服务,删除容器,重新创建容器,重新创建一个容器时文件路径挂载保持一致即可
docker stop c_mysql
docker -rm -f c_mysql
重新创建一个mysql容器
docker run -id \
-p 3308:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
以上 -v 参数保持一致即可。