这个报错说明你的系统中已经存在一个名为mysql-server的容器。这通常是因为你之前尝试启动失败后,Docker 依然保留了这个容器的记录。
别担心,这很容易解决。你可以根据实际需求选择以下三种方案之一:
方案一:强制删除旧容器并重新创建(推荐)
如果你不需要保留之前那个失败的容器,可以直接将其强制删除,然后重新运行命令:
# 1. 强制删除冲突的容器 docker rm -f mysql-server # 2. 重新运行你的启动命令 docker run -d \ --name=mysql-server \ --restart=always \ -p 3306:3306 \ -v mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e TZ=Asia/Shanghai \ mysql:5.7(注:-f参数表示即使容器正在运行也会先停止再删除,一步到位)
方案二:重命名旧容器后再启动新容器
如果你想保留之前那个可能存有数据的旧容器以备不时之需,可以先给它改个名字:
# 1. 将旧容器重命名为备份名称 docker rename mysql-server mysql-server-old # 2. 再次执行原来的启动命令即可 docker run -d \ --name=mysql-server \ ... (同上)方案三:给新容器起一个新的名字
如果你只是想同时跑两个 MySQL 实例,可以在启动时换一个不同的名字:
docker run -d \ --name=mysql-server-new \ ... (其余参数保持不变)💡 建议:
由于你之前的命令在-e处截断了,说明那个叫mysql-server的旧容器大概率是个配置不完整的“残次品”。直接采用方案一把它删掉重建是最干净利落的处理方式!