You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Skopeo在远程镜像仓库间复制镜像时的本地缓存路径咨询

Skopeo远程镜像复制时的本地缓存位置与持久化方案

默认缓存存储位置

Skopeo的镜像层缓存默认存在/var/lib/containers/storage目录下,它不是以tar包形式存储的,而是拆解为文件系统分层数据(比如overlay/overlay2格式的层文件),所以你在容器里搜索tar文件找不到是正常的。

自定义缓存位置

你可以通过两种方式修改缓存路径:

  • 修改默认配置文件:编辑/etc/containers/storage.conf,调整graphroot字段为目标路径
  • 使用环境变量:设置CONTAINERS_STORAGE_CONF指向自定义的存储配置文件,配置文件里同样指定graphroot

容器场景下的缓存持久化(针对mirekphd/ml-skopeo)

要把缓存持久化到容器外部,推荐两种方法:

方法1:直接挂载宿主机目录到默认缓存路径

运行容器时通过-v参数挂载宿主机目录到容器内的/var/lib/containers/storage:

docker run -v /宿主机本地缓存目录:/var/lib/containers/storage mirekphd/ml-skopeo skopeo copy docker://docker.io/mirekphd/ml-cpu-r40-rs-cust:latest docker://docker.io/mirekphd/ml-test:latest

方法2:自定义缓存路径并指定配置文件

  1. 在宿主机创建存储配置文件storage.conf,示例内容:
[storage]
driver = "overlay"
graphroot = "/custom-cache-dir"
runroot = "/run/containers/storage"
  1. 运行容器时挂载配置文件和自定义缓存目录:
docker run -v /宿主机路径/storage.conf:/etc/containers/storage.conf -v /宿主机自定义缓存目录:/custom-cache-dir mirekphd/ml-skopeo skopeo copy ...

缓存生效验证

你提供的两次执行耗时差异已经清晰证明缓存在工作:
第一次执行(无缓存):

$ time skopeo copy docker://docker.io/mirekphd/ml-cpu-r40-rs-cust:latest docker://docker.io/mirekphd/ml-test:latest
real    2m35.696s
user    0m32.312s
sys 0m12.028s

第二次执行(复用缓存):

$ time skopeo copy docker://docker.io/mirekphd/ml-cpu-r40-rs-cust:latest docker://docker.io/mirekphd/ml-test:latest
real    0m15.004s
user    0m0.898s
sys 0m0.313s

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:06:32