Docker中修改mysql容器端口映射

一、问题描述:

我本地有一个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
经验分享 程序员 微信小程序 职场和发展