mirekphd
mirekphd

Reputation: 6831

Where does skopeo cache docker images when copying between two registries?

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 tars, 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

Answers (1)

mirekphd
mirekphd

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

Related Questions