Reputation: 6831
Where does skopeo
store its local cache with image layers when copying an image between two remote registries (or just two repos from the same remote registry)?
For example, this command, when executed twice, shows clear evidence of a local cache being used:
# first time:
$ 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
# ... vs. using cache:
$ 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
I searched the container for tar
s, but could not find any.
Use case: I would like to persist this folder to an external location outside of our new mirekphd/ml-skopeo
container to allocate more space to the local images cache.
Upvotes: 0
Views: 954
Reputation: 6831
From the inspection of the logs printed by skopeo copy
in the --debug
mode I realized that the default location chosen for image layers cache is a (root-owned!) /.local
(rather than the correct ~/.local
). I will report this issue to Skopeo devs.
The relevant logs excerpt:
DEBU[0001] Error creating parent directories for blob-info-cache-v1.boltdb, using a memory-only cache: mkdir /.local: permission denied
Upvotes: 1