如何从无法运行的损坏Docker镜像中提取Nginx配置文件
从无法启动的Nginx镜像提取配置文件的方法
方法一:通过Docker Desktop操作
- 打开Docker Desktop,切换到Images页面,找到
obur5/nginx-broken-image:latest镜像 - 点击镜像右侧的Run,在弹出的配置窗口中,将Command改为
sh,点击Run启动临时容器 - 切换到Containers页面,找到刚启动的容器,点击Exec进入终端
- 在终端中执行以下命令查看并复制配置文件内容:
- 查看nginx.conf:
cat /etc/nginx/nginx.conf,复制输出内容到本地新建的nginx.conf文件中 - 查看default.conf:
cat /etc/nginx/conf.d/default.conf,复制输出内容到本地新建的default.conf文件中
- 查看nginx.conf:
- 也可以通过文件浏览器直接下载:进入容器详情页的Files标签,找到目标文件后右键选择Download,保存到本地
方法二:通过命令行操作
方式1:临时容器终端复制
# 启动临时容器,用shell替代Nginx启动命令 docker run --rm -it obur5/nginx-broken-image:latest sh
进入容器后,用cat命令查看并复制配置文件内容,保存到本地。
方式2:直接复制文件到本地
# 创建一个临时容器(用sleep保持运行) docker create --name temp-nginx obur5/nginx-broken-image:latest sleep 3600 # 复制nginx.conf到本地当前目录 docker cp temp-nginx:/etc/nginx/nginx.conf ./nginx.conf # 复制default.conf到本地当前目录 docker cp temp-nginx:/etc/nginx/conf.d/default.conf ./default.conf # 删除临时容器 docker rm temp-nginx
关于卷挂载文件为空的说明
当你将本地卷挂载到容器的/etc/nginx或/etc/nginx/conf.d目录时,本地卷的内容会覆盖容器内原有的文件。如果本地卷是空的,容器内对应的目录自然也会显示为空,这就是你之前遇到的问题。
内容的提问来源于stack exchange,提问作者VBE
相关产品推荐
相关产品推荐

