You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker启动mysql镜像报错3306端口被占用的解决咨询

解决Docker中MySQL端口重复占用问题

针对你的问题,有三种可行的解决方式:

1. 修改现有mysql/mysql-server:8.0容器的端口映射

Docker容器创建后无法直接修改端口映射规则,需重新创建容器并指定新的映射关系:

  • 停止目标容器:docker stop <container-name>
  • 删除该容器:docker rm <container-name>
  • 重新创建容器时,将容器内3306端口映射到宿主机的其他空闲端口(比如3307):
    docker run -d -p 3307:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=你的密码 mysql/mysql-server:8.0
    
  • 后续启动该容器只需执行docker start mysql8,不会再占用宿主机3306端口。

2. 给新运行的MySQL容器指定其他端口映射

如果不想改动现有mysql/mysql-server:8.0容器,启动你需要的MySQL镜像时,直接映射到宿主机未被占用的端口(比如3308):

docker run -d -p 3308:3306 --name 你的容器名 -e MYSQL_ROOT_PASSWORD=你的密码 你的mysql镜像名

3. 禁用mysql/mysql-server:8.0容器的自动启动

如果该容器是自动启动导致每次抢占端口,可调整它的重启策略:

  • 查看容器当前的重启策略:docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' <container-name>
  • 将重启策略改为no,避免容器自动启动:
    docker update --restart=no <container-name>
  • 之后只有你手动执行docker start <container-name>时,该容器才会启动,不会自动占用3306端口。

内容的提问来源于stack exchange,提问作者Андрей Рубан

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:20:20