cli icon indicating copy to clipboard operation
cli copied to clipboard

Add option to docker pull to use local cache first without contacting Docker Hub

Open vzakaznikov opened this issue 9 months ago • 3 comments

Description

Currently, docker pull contacts Docker Hub (or another registry), even when the requested image is already present locally and up to date. This behavior:

  • Triggers unauthenticated rate limits unnecessarily.
  • Makes it unsafe to use docker pull in CI environments without Docker Hub authentication.

Please consider adding a flag to docker pull that checks the local image cache first and skips contacting the registry if the image is already available locally.

Worst of all, docker pull is currently inconsistent—it sometimes succeeds and sometimes fails, even when the image is already cached locally.

Here is an example where both images are present locally:

Pulling atlassian/bamboo-server
  docker pull atlassian/bamboo-server
  Using default tag: latest
  latest: Pulling from atlassian/bamboo-server
  Digest: sha256:b3d33daee6667c15ae3f1a9225bd85f493a23183f4d33776aa7243822d0fa820
  Status: Image is up to date for atlassian/bamboo-server:latest
  docker.io/atlassian/bamboo-server:latest

Pulling buildkite/agent
  docker pull buildkite/agent
  Using default tag: latest
  Error response from daemon: toomanyrequests: You have reached your unauthenticated pull rate limit. https://www.docker.com/increase-rate-limit

A common workaround is to explicitly check for the image before pulling:

if ! docker image inspect ubuntu:22.04 > /dev/null 2>&1; then
    docker pull ubuntu:22.04
fi

Alternatively, pulling by digest avoids the registry check:

docker pull ubuntu@sha256:<digest>

But these approaches are manual and error-prone. A built-in option (e.g. --check-cache-first) would offer a simpler and more robust solution for both local workflows and CI pipelines.

vzakaznikov avatar May 17 '25 21:05 vzakaznikov

When doing a docker pull, it will first perform a HEAD requests to check if the image digest in the registry is updated; if the digests is still the same, no pull should happen. HEAD requests (on Docker Hub at least) are not counted for rate-limits, so should have no impact.

The purpose of docker pull is to pull the current version of an image, so I'm not sure if --check-cache-first (or "if missing") would make sense.

Curious; what will you be using the image for? When doing a docker run, using the local cache is the default (so no manual docker pull would be needed); likewise for docker build when using the built-in builder.

thaJeztah avatar May 19 '25 09:05 thaJeztah

Hi @thaJeztah, thank you for your reply!

If HEAD requests are indeed not counted toward rate limits, then my testing appears to show a different behavior. In this workflow: https://github.com/testflows/TestFlows-GitHub-Hetzner-Runners/blob/main/.github/workflows/pull-100-docker-images.yml#L153 when running docker pull across many public images using an anonymous or free-tier account, I consistently hit rate-limit errors — even though the digests for those tags were already present locally and unchanged.

My use case is running docker pull as part of a CI/CD pipeline to ensure that images are up to date before jobs run. Ideally, I'd expect docker pull to skip pulling if the digest hasn’t changed — and to do so without consuming rate limit quota, as you described.

The workaround I ended up using (until I switched to a Pro account) was:

if ! docker image inspect ubuntu:22.04 > /dev/null 2>&1; then
    docker pull ubuntu:22.04
fi

Thanks again!

vzakaznikov avatar May 24 '25 13:05 vzakaznikov

Docker 20.10 and newer should cache the manifest after pulling (if the containerd image store is not in use), and skip the actual pull if the content is matched; https://github.com/moby/moby/pull/41607

With the containerd image store, the same should happen (containerd always stores the manifests that it pulled);

With a local registry (to check requests received by the registry) and the containerd image store enabled;

docker run -d --name registry --rm -p 5002:5000 registry:2

echo -e 'FROM alpine' | docker build -t host.docker.internal:5002/myimage:latest  -
docker push host.docker.internal:5002/myimage:latest
The push refers to repository [host.docker.internal:5002/myimage]
6e771e15690e: Pushed
109631c1e18d: Pushed
latest: digest: sha256:74dbc6645ece3658846442acfeffa07d7cd0c8d0f7ca736731037a0fcce380f9 size: 855

docker rmi host.docker.internal:5002/myimage:latest
Untagged: host.docker.internal:5002/myimage:latest
Deleted: sha256:74dbc6645ece3658846442acfeffa07d7cd0c8d0f7ca736731037a0fcce380f9

docker pull host.docker.internal:5002/myimage:latest
latest: Pulling from myimage
Digest: sha256:74dbc6645ece3658846442acfeffa07d7cd0c8d0f7ca736731037a0fcce380f9
Status: Downloaded newer image for host.docker.internal:5002/myimage:latest
host.docker.internal:5002/myimage:latest

docker pull host.docker.internal:5002/myimage:latest
latest: Pulling from myimage
Digest: sha256:74dbc6645ece3658846442acfeffa07d7cd0c8d0f7ca736731037a0fcce380f9
Status: Image is up to date for host.docker.internal:5002/myimage:latest
host.docker.internal:5002/myimage:latest

docker pull host.docker.internal:5002/myimage:latest
# repeat a few times

Logs for registry container shows that the pulls only result in a HEAD request, with no GET request (as the image wasn't updated);

192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/blobs/sha256:6e771e15690e2fabf2332d3a3b744495411d6e0b00b2aea64419b58b0066cf81 HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/blobs/sha256:baf8be4c483728b8210141e1cd2ecedc8accbbf02761527327c30a7c255e8260 HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/blobs/sha256:8e930d459a9619d0aaa861555003823bbddffcfc467959d3b4a975a2267f38e7 HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/blobs/sha256:109631c1e18d5b89cd07d35a818d8c68e27b43bb63b9afa8e89a73d6e3978d6c HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/blobs/uploads/a92dd6b1-1b93-4d2b-8359-84bb6418c79c?_state=dNgY57H0O55CSc_3kqiNNgII57JcyJkJniYBroHR3V57Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImE5MmRkNmIxLTFiOTMtNGQyYi04MzU5LTg0YmI2NDE4Yzc5YyIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxNzoyNi4wMzgwNzcwNDhaIn0%3D&digest=sha256%3A8e930d459a9619d0aaa861555003823bbddffcfc467959d3b4a975a2267f38e7 HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/blobs/uploads/cd1c34ab-542c-401b-8b79-ab6dc07c64c6?_state=Y6nCeSoAWXUZ2EOBnaxglvNx7KlytUsR39gdhTYIE6B7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImNkMWMzNGFiLTU0MmMtNDAxYi04Yjc5LWFiNmRjMDdjNjRjNiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxNzoyNi4wMzgyMTAwNDhaIn0%3D&digest=sha256%3A109631c1e18d5b89cd07d35a818d8c68e27b43bb63b9afa8e89a73d6e3978d6c HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/blobs/uploads/a2d1c5a7-b34d-4a74-b157-979c6c0f89f5?_state=45fe8dg4cuB-WVwMLnAK6tpQOIaZadfQMLWKQ2JfMmJ7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImEyZDFjNWE3LWIzNGQtNGE3NC1iMTU3LTk3OWM2YzBmODlmNSIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxNzoyNi4wMjMzMTUxMzJaIn0%3D&digest=sha256%3Abaf8be4c483728b8210141e1cd2ecedc8accbbf02761527327c30a7c255e8260 HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/blobs/uploads/c2541250-ba1c-44f3-b2d0-401ce53966eb?_state=5LixxPc1v7rUPL-qgL-4rN39cMcRdm0qB2FBk3H8Ft57Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImMyNTQxMjUwLWJhMWMtNDRmMy1iMmQwLTQwMWNlNTM5NjZlYiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxNzoyNi4wMjMzMTY5MjNaIn0%3D&digest=sha256%3A6e771e15690e2fabf2332d3a3b744495411d6e0b00b2aea64419b58b0066cf81 HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/manifests/sha256:889bfea82e9b267fb1dddd2151ff87ac8a693f12dd28e088c21a57d51328c4fd HTTP/1.1" 404 183 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/manifests/sha256:ae4667b34a2eaec727d82d478001045e327c7a2d425ea8209b378cbd3a44ffa1 HTTP/1.1" 404 183 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/manifests/sha256:889bfea82e9b267fb1dddd2151ff87ac8a693f12dd28e088c21a57d51328c4fd HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/manifests/sha256:ae4667b34a2eaec727d82d478001045e327c7a2d425ea8209b378cbd3a44ffa1 HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 404 96 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:26 +0000] "PUT /v2/myimage/manifests/latest HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:17:53 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 855 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:18:08 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 855 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:18:30 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 855 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:20:12 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 855 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:20:54 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 855 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 containerd-client/2.0.5+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"

After disabling the containerd image store, and repeating the same;

docker run -d --name registry --rm -p 5002:5000 registry:2
echo -e 'FROM alpine' | docker build -t host.docker.internal:5002/myimage:latest  -
docker push host.docker.internal:5002/myimage:latest
The push refers to repository [host.docker.internal:5002/myimage]
1231a673589a: Pushed
latest: digest: sha256:5f24a984dc6d405d4832032310023f8033aab72ee6bd62582e446b8aafd8584f size: 527

docker rmi host.docker.internal:5002/myimage:latest
Untagged: host.docker.internal:5002/myimage:latest
Untagged: host.docker.internal:5002/myimage@sha256:5f24a984dc6d405d4832032310023f8033aab72ee6bd62582e446b8aafd8584f
Deleted: sha256:4b071331304977d08f6ff896f2ece366bfaa03f0c1729fa2b4331d477405140b

docker pull host.docker.internal:5002/myimage:latest
latest: Pulling from myimage
d69d4d41cfe2: Already exists
Digest: sha256:5f24a984dc6d405d4832032310023f8033aab72ee6bd62582e446b8aafd8584f
Status: Downloaded newer image for host.docker.internal:5002/myimage:latest
host.docker.internal:5002/myimage:latest

docker pull host.docker.internal:5002/myimage:latest
latest: Pulling from myimage
Digest: sha256:5f24a984dc6d405d4832032310023f8033aab72ee6bd62582e446b8aafd8584f
Status: Image is up to date for host.docker.internal:5002/myimage:latest
host.docker.internal:5002/myimage:latest

# repeat a few times

Logs show that only HEAD requests are made for the manifest (the GET requests on the /v2/ endpoint are for feature discovery and don't count towards rate limits);

192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "HEAD /v2/myimage/blobs/sha256:d69d4d41cfe2ee680d6972795e2a1eb9e4dc4ec3b3c5e0797c9ab43bb3726fa7 HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "PATCH /v2/myimage/blobs/uploads/e8083e58-d00f-4e5b-8c44-1ab280a0e75b?_state=J9j1JyYrrp2Y25E3PpjZA6MEo-jiZJ-uk9dfjrDNaAx7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImU4MDgzZTU4LWQwMGYtNGU1Yi04YzQ0LTFhYjI4MGEwZTc1YiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxMDo0Ny41OTM1MzYyMVoifQ%3D%3D HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "PUT /v2/myimage/blobs/uploads/e8083e58-d00f-4e5b-8c44-1ab280a0e75b?_state=o3wsRjFOBpkZkOFiIVSr7lnoOwQvpSz_zYjs97FwYCB7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6ImU4MDgzZTU4LWQwMGYtNGU1Yi04YzQ0LTFhYjI4MGEwZTc1YiIsIk9mZnNldCI6NDEzNTk0MSwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxMDo0N1oifQ%3D%3D&digest=sha256%3Ad69d4d41cfe2ee680d6972795e2a1eb9e4dc4ec3b3c5e0797c9ab43bb3726fa7 HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:47 +0000] "HEAD /v2/myimage/blobs/sha256:d69d4d41cfe2ee680d6972795e2a1eb9e4dc4ec3b3c5e0797c9ab43bb3726fa7 HTTP/1.1" 200 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "HEAD /v2/myimage/blobs/sha256:4b071331304977d08f6ff896f2ece366bfaa03f0c1729fa2b4331d477405140b HTTP/1.1" 404 157 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "POST /v2/myimage/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "PATCH /v2/myimage/blobs/uploads/720ac455-c2b7-4e90-a28a-b724b65dd6ef?_state=vyfu2Q-RlVloVYANH3x5XAbPHKEShJ9O4H-vdVOc-6x7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6IjcyMGFjNDU1LWMyYjctNGU5MC1hMjhhLWI3MjRiNjVkZDZlZiIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyNS0wNi0wMlQxMzoxMDo0OC4wMTMwMTY0MThaIn0%3D HTTP/1.1" 202 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "PUT /v2/myimage/blobs/uploads/720ac455-c2b7-4e90-a28a-b724b65dd6ef?_state=XSfwOlpx8cJnydlFhv_uqYUYrXlUkrRJuwL9Fjk7nMd7Ik5hbWUiOiJteWltYWdlIiwiVVVJRCI6IjcyMGFjNDU1LWMyYjctNGU5MC1hMjhhLWI3MjRiNjVkZDZlZiIsIk9mZnNldCI6NTgyLCJTdGFydGVkQXQiOiIyMDI1LTA2LTAyVDEzOjEwOjQ4WiJ9&digest=sha256%3A4b071331304977d08f6ff896f2ece366bfaa03f0c1729fa2b4331d477405140b HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "HEAD /v2/myimage/blobs/sha256:4b071331304977d08f6ff896f2ece366bfaa03f0c1729fa2b4331d477405140b HTTP/1.1" 200 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:10:48 +0000] "PUT /v2/myimage/manifests/latest HTTP/1.1" 201 0 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:32 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:32 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:32 +0000] "GET /v2/myimage/manifests/sha256:5f24a984dc6d405d4832032310023f8033aab72ee6bd62582e446b8aafd8584f HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:32 +0000] "GET /v2/myimage/blobs/sha256:4b071331304977d08f6ff896f2ece366bfaa03f0c1729fa2b4331d477405140b HTTP/1.1" 200 582 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:43 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:43 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:45 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:45 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:47 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:47 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:47 +0000] "GET /v2/ HTTP/1.1" 200 2 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"
192.168.65.1 - - [02/Jun/2025:13:11:48 +0000] "HEAD /v2/myimage/manifests/latest HTTP/1.1" 200 527 "" "docker/28.2.0-rc.2 go/go1.24.3 git-commit/32c5774 kernel/6.10.14-linuxkit os/linux arch/arm64 UpstreamClient(Docker-Client/28.2.0-rc.2 \\(darwin\\))"

thaJeztah avatar Jun 02 '25 14:06 thaJeztah