有时候我们想从一个docker镜像(image)中,提取和复制出里面的文件夹和文件,这个时候需要借助组合命令行了。
以docker nginx镜像为例,如果想复制预定义的nginx配置目录/etc/nginx,那么就使用如下命令:
(mkdir -p ./temp1) ; \
(docker create --name tempcontainer nginx:1.27.2-bookworm) ; \
(docker cp tempcontainer:/etc/nginx ./temp1) ; \
(docker rm tempcontainer)
(使用“;”而不是“&&”是为了确保最后docker rm可以顺利执行)
这样就可以在当前shell目录下找到temp1文件夹,里面就是复制出来的内容。
如果需要直接从docker镜像里面直接打包,则可以执行如下命令:
(docker create --name tempcontainer nginx:1.27.2-bookworm) ; \
(docker cp tempcontainer:/etc/nginx - > ./imgfile.tar) ; \
(docker rm tempcontainer)
这样就会在当前shell目录下找到imgfile.tar压缩文件夹。
然后执行下面命令解压缩得出来的imgfile.tar:
mkdir -p ./imgfile && tar -xvf ./imgfile.tar -C ./imgfile
参考链接:
https://stackoverflow.com/questions/25292198/docker-how-can-i-copy-a-file-from-an-image-to-a-host
本页永久链接:https://www.orztip.com/?p=884&article_title=copy-files-from-docker-image