重命名目录后如何复用现有Docker容器且不丢失数据
Docker目录重命名后容器冲突的无丢失迁移方案
操作步骤(全程保证数据安全)
- 先停止冲突的容器:
docker stop bar_db_1 - 备份绑定挂载的
db-dumps目录:
把容器内的备份文件复制到新的bar目录下,确保挂载数据完整:docker cp bar_db_1:/var/db-dumps bar/db-dumps - 删除旧容器:
不用担心数据丢失,你的数据库核心数据存在Docker独立管理的命名卷db里,和容器无关:docker rm bar_db_1 - 进入新目录启动容器:
cd bar docker-compose up -d
为什么这样可行?
你的docker-compose.yml里,数据库数据用的是命名卷db,这种卷是Docker单独存储的,不受容器、项目目录变化影响。只要卷名和配置里一致,docker-compose启动时会自动复用这个卷,数据库数据完全保留。而./db-dumps是本地目录绑定挂载,我们提前把容器内的内容同步到新目录,确保备份数据不丢失。
验证数据完整性(可选)
启动后可以进入容器检查数据库:
docker exec -it bar_db_1 mysql -u root -p # 输入密码后执行命令查看数据库 SHOW DATABASES;
内容的提问来源于stack exchange,提问作者Frank Mohaupt
相关产品推荐
相关产品推荐

