docker容器中,把文件改坏了,如何修复?
·
场景描述:
假设,你要去一个docker容器内部编辑一个文件,修改完成后,结果发现文件改的不对,而且不能回退了,业务也异常了。此时,你内心一定很崩溃,恰好,我也遇到了这个问题,于是,我决定把处理办法写下来,助人为乐。
主要思路描述
1. 从镜像创建一个临时容器,这个容器挂载了本地目录到容器的目录。
2. 进入容器后,拷贝原始文件到挂载目录。
3. 退出容器,临时容器自动销毁
4. 使用docker cp 拷贝文件到 业务中的容器中
参考命令(容器名称,目录等需要你根据实际情况修改):
1. 创建临时容器
docker run --rm -v /tmp/temp_file:/var/cache/nginx -it portus.in.chaitin.net/x-ray/durian-nginx:latest sh
--rm 表示退出容器后,自动删除该容器
-v:宿主机目录和容器目录挂载,用于传递文件;
-it:交互式终端,方便操作。
2. 在临时容器内复制原始文件到挂载目录
# 假设要提取 /etc/nginx/nginx.conf,复制到挂载的 /tmp/temp 目录
cp /etc/nginx/nginx.conf /tmp/temp/
exit # 退出临时容器(会自动删除)
3. 将宿主机的原始文件复制到出问题的容器:
# 替换容器名(my-nginx)和文件路径为你的实际信息
docker cp /tmp/temp_file/nginx.conf my-nginx:/etc/nginx/nginx.conf
4. 清理宿主机临时文件(可选):
rm -rf /tmp/temp_file
注意:挂载的目录,需要保证有写入权限,否则在容器内cp会失败。
更多推荐
所有评论(0)