Docker Registry にイメージを push した際に "blob unknown" ("blob unknown to registry") とエラーが出る場合の対応方法の一つ

Docker Registry とは

自前の Docker Hub です。

docs.docker.com

結論

環境変数に以下を追加します。

REGISTRY_HTTP_RELATIVEURLS=true

環境

この状況に陥った環境は以下のとおりです。

  • インターネット上に Docker Registry を作る(例えば my-docker-reg.example.com とします)
  • ユーザからのアクセスで最初に通るところは Cloudflare
  • Cloudflare から nginx へと接続される
  • nginx から Docker Registry に接続される
  • 証明書は配備済み

エラーメッセージ例

エラーメッセージの例です。

docker_registry | time="2021-01-24T01:07:20.921053951Z" level=error msg="response completed with error" err.code="blob unknown" err.detail=sha256:596ba82af5aaa3e2fd9d6f955b8b94f0744a2b60710e3c243ba3e4a467f051d1 err.message="blob unknown to registry" go.version=go1.11.2 http.request.host=my-docker-reg.example.com http.request.id=c1ade4b9-b4bb-4b8b-a80b-e62ed36b23d4 http.request.method=HEAD http.request.remoteaddr=123.123.123.123 http.request.uri="/v2/alpine/blobs/sha256:596ba82af5aaa3e2fd9d6f955b8b94f0744a2b60710e3c243ba3e4a467f051d1" http.request.useragent="docker/20.10.2 go/go1.13.15 git-commit/hoge UpstreamClient(Docker-Client/20.10.2 (linux))" http.response.contenttype="application/json; charset=utf-8" http.response.duration=7.540938ms http.response.status=404 http.response.written=157 vars.digest="sha256:596ba82af5aaa3e2fd9d6f955b8b94f0744a2b60710e3c243ba3e4a467f051d1" vars.name=alpine

参考(答え)

stackoverflow.com

community.traefik.io

Powered by はてなブログ