$crane copy --insecure alt:latest registry.test.alt:5000/alt:prod$crane copy alt:latest localhost:5000/alt:prod
$ crane --insecure push \
oci/images/alpine:latest \
localhost:5000/alpine:latest
$ crane --insecure pull \
--format oci \
localhost:5000/alpine:latest \
oci/images/alpine:latest
$ crane config alt:p11 | jq .
$crane catalog 192.168.0.165:5000$crane ls localhost:5000/myapp
$ crane digest localhost:5000/myapp:latest
crane mutate.
Примечание
$ crane mutate alt:latest \
--label version=1.0 \
--tag localhost:5000/alt:modified
$ crane mutate myalt:latest \
--annotation build-system=crane \
--tag localhost:5000/my-alt:annotated
$ crane mutate app:old \
--entrypoint '["/init"]' \
--workdir /app \
--tag app:new
crane export → редактирование → crane append
/usr/local/bin/hello.sh (без пересборки через Dockerfile):
$ crane export alt:latest alt-fs.tar
Создаётся архив alt-fs.tar, содержащий корневую ФС образа.
$mkdir -p modified-root$tar -xf alt-fs.tar -C modified-root
$ cat > modified-root/usr/local/bin/hello.sh <<'EOF'
> #!/bin/sh
> echo "Hello from modified ALT!"
> EOF
$ chmod +x modified-root/usr/local/bin/hello.sh
$ tar -cf modified-fs.tar -C modified-root .
$ crane append \
--base alt:latest \
--new_layer modified-fs.tar \
--new_tag localhost:5000/alt-modified:latest
$ podman run --rm localhost:5000/alt-modified:latest hello.sh
Ожидаемый вывод:
Hello from modified ALT!
crane tag создаёт или переназначает тег без передачи данных (меняется только ссылка на digest).
$ crane tag registry.test.alt:5000/myalt:latest stable
Теперь registry.test.alt/myalt:stable указывает на тот же образ, что и latest.
crane manifest выводит сырой JSON-манифест образа — полезно для отладки, анализа слоёв, проверки платформы.
$ crane manifest localhost:5000/myapp:latest | jq .
Проверить multi-arch манифест (индекс):
$ crane manifest alt:p11 | jq '.manifests[].platform'
Примечание
$ crane index filter \
alt:p11 \
--platform linux/amd64 \
--tag localhost:5000/newalt:slim-multiarch
$ crane index append ubuntu \
-m hello-world@sha256:87b9ca29151260634b95efb84d43b05335dc3ed36cc132e2b920dd1955342d20 \
-t example.com/hello-world:weird
~/.docker/config.json;
$ crane auth login -u alice -p mypass localhost:5000
Примечание
--insecure.