Skip to content
Search

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):

regctl image copy docker.io/me/myimage:tag registry.example.com/myimage:tag

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.

See also

Favorite site

author Zer0 sitemap