一、问题背景
在日常使用 Docker 的过程中,可能会遇到以下场景:
在容器内修改了某个配置文件并保存,随后重启容器时发现容器无法正常启动。
由于容器已经起不来,无法再通过
docker exec进入容器修改配置,但我们又希望把刚才修改错误的配置恢复为原来的内容。
那么,该如何处理呢?
二、解决思路
Docker 提供了一个非常实用的命令:docker cp ,可以在 容器 ↔ 主机 之间直接拷贝文件。
整体思路如下:
- 将容器中的配置文件拷贝到宿主机
- 在宿主机上修复配置文件
- 将修复后的配置文件拷贝回容器
- 重新启动容器
三、操作步骤详解
第一步:将容器中的配置文件复制到主机
使用 docker cp 命令把容器里的配置文件拷贝到宿主机:
bash
docker cp <容器ID>:<容器内文件路径> <主机路径>
示例
bash
docker cp b2fb9c1cac85:/home/kasm-user/.vnc/config /Users/用户名/Desktop/config
说明:
b2fb9c1cac85:容器 ID/home/kasm-user/.vnc/config:容器内配置文件路径/Users/lovebxm/Desktop/config:宿主机保存路径
执行完成后,配置文件就已经安全地复制到本地了 ✅
第二步:在主机中修改配置文件
在宿主机上使用你熟悉的编辑器(如 vim、VS Code 等)打开并修复配置文件。
⚠️ 根据你的实际情况,将错误的配置内容恢复为原来的正确版本即可。
第三步:将修复后的配置复制回容器
修改完成后,再使用 docker cp 把文件复制回容器原路径:
bash
docker cp <主机路径> <容器ID>:<容器内文件路径>
示例
bash
docker cp /Users/用户名/Desktop/config b2fb9c1cac85:/home/kasm-user/.vnc/config
第四步:重新启动容器
最后,重新启动容器:
bash
docker restart b2fb9c1cac85

如果配置修复正确,容器即可正常启动 🎉