skopeo Move container images
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
skopeo inspect docker://<image>
skopeo list-tags docker://<repo>
skopeo copy docker://<src> docker://<dst>
skopeo copy docker://<image> dir:<path>
skopeo sync --src docker --dest docker <src>
<dst>
skopeo login <registry>
skopeo delete docker://<image>
skopeo copy --all <src> <dst>
Concepts
- Source docker:// dir: oci:
- skopeo no daemon, no root
- Destination docker:// dir: oci-archive:
| Prefix | Points at |
|---|---|
docker://<ref> |
Registry (Docker Registry API v2) |
dir:<path> |
Directory of manifest and layer files |
oci:<path>:<tag> |
OCI image layout directory |
oci-archive:<path>:<tag> |
Tar of an OCI layout |
docker-archive:<path> |
Tar made by docker save |
docker-daemon:<ref> |
Local Docker daemon (needs tag) |
containers-storage:<ref> |
Podman/Buildah local storage |
Inspect & list
skopeo inspect docker://<image>
skopeo list-tags docker://<repo>
skopeo inspect --config docker://<image>
skopeo inspect --raw docker://<image>
skopeo inspect --format '{{ .Digest }}'
docker://<image>
skopeo inspect --no-tags docker://<image>
Copy
skopeo copy <src> <dst>
skopeo copy docker://<image> dir:<path>
skopeo copy docker://<image>
oci:<path>:<tag>
skopeo copy docker://<image>
docker-archive:<file>:<ref>
skopeo copy --all <src> <dst>
skopeo copy --multi-arch=<system|all|index-only|list>
<src> <dst>
skopeo copy --format <oci|v2s1|v2s2> <src>
<dst>
skopeo copy --digestfile <file> <src>
<dst>
skopeo copy --retry-times <n> --retry-delay <t>
<src> <dst>
Sync & delete
skopeo sync --src docker --dest docker <src>
<dst>
skopeo sync --src docker --dest dir <repo>
<dir>
skopeo sync --src dir --dest docker <dir>
<registry>
skopeo sync --src yaml --dest docker <file.yml>
<dst>
skopeo sync --all --src docker --dest docker <src>
<dst>
skopeo sync --dry-run --src docker --dest docker
<src> <dst>
skopeo delete docker://<image>
Auth & TLS
skopeo login <registry>
skopeo logout <registry>
skopeo login -u <user> --password-stdin
<registry>
skopeo inspect --creds <user>:<pass>
docker://<image>
skopeo inspect --authfile <file>
docker://<image>
skopeo copy --src-creds <u:p> --dest-creds
<u:p> <src> <dst>
skopeo copy --dest-tls-verify=false <src>
<dst>
Platform & policy
skopeo --override-arch <arch> inspect
docker://<image>
skopeo --debug copy <src> <dst>
skopeo --insecure-policy copy <src> <dst>
skopeo copy --sign-by <key-id> <src>
<dst>
skopeo --require-signed copy <src> <dst>
Recipes
skopeo login registry-a.example.comskopeo login registry-b.example.comskopeo copy --all \ docker://registry-a.example.com/app:1.0 \ docker://registry-b.example.com/app:1.0
skopeo sync --src docker --dest dir \ registry.example.com/app /media/usb# on the offline sideskopeo sync --src dir --dest docker \ /media/usb/app my-registry.lan/



