Regclient
lastmod 2026-08-14created 2026-08-145 edits
regclient is an OCI client for registry servers and the OCI Image Layout.
regctl
Installation (single binary)
curl -L https://github.com/regclient/regclient/releases/latest/download/regctl-linux-amd64 \
-o ~/.local/bin/regctl && chmod +x ~/.local/bin/regctl
Uploading to a registry with a body size limit
For example, the Cloudflare proxy (including tunnels) imposes a request body size limit — Free/Pro 100MB, Business 200MB, Enterprise 500MB. docker push uploads a layer blob in one shot as a monolithic PATCH, so it fails right away with a 413 Error on layers larger than 100MB.
Docker CLI / skopeo / crane all upload blobs whole and cannot work around this, but only regclient supports "chunked blob upload". If you lower the chunk size below the limit, the push goes through with the tunnel left as is.
# 1) 로그인 (password 는 컨테이너 레지스트리 PAT)
regctl registry login mlops-api-dev.unwiki.net -u <테넌트코드> -p <PAT>
# 2) 32MB 넘는 blob 은 32MB 청크로 쪼개 보내도록 설정
regctl registry set mlops-api-dev.unwiki.net --blob-chunk 33554432 --blob-max 33554432
# 3) tar 로 떠서 밀어넣기 (regctl 은 docker daemon 을 못 읽으므로 save 가 필요)
docker save itl/asm-trainer:v3 -o asm-trainer-v3.tar
regctl image import mlops-api-dev.unwiki.net/itl/asm-trainer:v3 asm-trainer-v3.tar
# 4) 확인
regctl tag ls mlops-api-dev.unwiki.net/itl/asm-trainer
Or copy directly from another registry (multi-arch manifests are kept as is):
Blobs larger than --blob-max are split and sent in --blob-chunk units.
However, the registry side must support chunked PATCH.
- Self-hosted
registry:2(distribution), Harbor, and ECR are OK. - The GCP Artifact Registry family does not handle chunked uploads properly, so this method does not work there.