~/.docker/config.json;
$ crane auth login <registry>
где <registry> — адрес реестра контейнеров.
$ crane auth login registry.test.alt:5000 -u username -p password
или для локального реестра:
$ crane auth login localhost:5000 -u username -p password
Примечание
crane необходимо использовать флаг --insecure. Этот флаг разрешает взаимодействие с реестром без проверки TLS-соединения.
--insecure.
$crane copy --insecure alt:latest registry.test.alt:5000/alt:prod$crane copy alt:latest localhost:5000/alt:prod
$ crane pull \
--format oci \
localhost:5000/alpine:latest \
oci/images/alpine:latest
$ crane push \
oci/images/alpine:latest \
localhost:5000/alpine-copy: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.
Примечание
Примечание
$ podman push localhost/myalt:latest localhost:5000/myalt:latest
$ crane mutate localhost:5000/myapp:latest \
--label version=1.0 \
--tag localhost:5000/myapp:modified
$ crane mutate localhost:5000/myapp:latest \
--annotation build-system=crane \
--tag localhost:5000/myapp:annotated
$ crane mutate localhost:5000/myapp:latest \
--entrypoint /init \
--workdir /app \
--tag localhost:5000/myapp:new
crane export → редактирование → crane append
/usr/local/bin/hello.sh (без пересборки через Dockerfile):
$ crane export localhost:5000/myapp:latest alt-fs.tar
Создаётся архив alt-fs.tar, содержащий корневую ФС образа.
$mkdir -p modified-root$tar -xf alt-fs.tar -C modified-root
Примечание
tar -xf от имени обычного пользователя могут выводиться предупреждени о невозможности создания файлов устройств из каталога /dev. Это не влияет на возможность модификации образа и его последующее использование.
$ 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 localhost:5000/myapp:latest \
--new_layer modified-fs.tar \
--new_tag localhost:5000/myapp-modified:latest
$ podman run --rm localhost:5000/myapp-modified:latest hello.sh
Ожидаемый вывод:
Hello from modified ALT!
crane tag создаёт или переназначает тег без передачи данных (меняется только ссылка на digest).
$ crane tag --insecure registry.test.alt:5000/myapp:latest stable
Теперь registry.test.alt/myapp: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