You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需运行Docker容器,能否从Docker镜像复制文件?若可行需哪些步骤?

无需运行容器从Docker镜像复制文件的方法

完全可以做到!不用启动完整的容器实例,就能轻松从Docker镜像里提取文件,下面是我常用的具体操作步骤:

方法一:临时容器复制法(最稳妥)

这个方法会创建一个一次性的临时容器,复制完成后直接清理,不会留下冗余资源:

  • 第一步,创建一个临时容器(不会启动,只是生成容器实例):
    docker create --name temp-container <镜像名称或镜像ID>
    
  • 第二步,把容器内的目标文件/目录复制到本地:
    docker cp temp-container:/容器内文件/目录路径 /本地存储的目标路径
    
  • 第三步,删除刚才创建的临时容器:
    docker rm temp-container
    

举个实际例子:如果我要从nginx:alpine镜像里复制/etc/nginx/nginx.conf到本地的./local-config目录,完整命令就是:

docker create --name temp-nginx nginx:alpine
docker cp temp-nginx:/etc/nginx/nginx.conf ./local-config/
docker rm temp-nginx

方法二:一步到位简化版

如果你嫌分步骤麻烦,可以把命令合并成一行,利用Docker创建容器后返回容器ID的特性:

docker cp $(docker create <镜像名称或ID>):/容器内文件/目录路径 /本地目标路径

这个命令会自动创建匿名临时容器,复制完成后,你可以用docker container prune -f命令一键清理所有未运行的匿名容器。

实用小提示

  • 要是不确定镜像里文件的具体路径,可以用这个命令快速查看(执行完会自动删除临时容器):
    docker run --rm <镜像名称或ID> ls -l /目标目录
    
  • 复制整个目录的话,只需要把命令里的文件路径替换成目录路径即可,Docker会自动递归复制目录下的所有内容。

内容的提问来源于stack exchange,提问作者Umair Aslam

火山引擎 最新活动