Zdaję sobie sprawę, że odpowiedź jest już zaakceptowana, ale chciałem zaoferować to rozwiązanie, które moim zdaniem bardziej odpowiada na zadane pytanie: „Jak pobrać obraz Dockera bez użycia Dockera do wykonania wyszukiwania?”
Mam podobny problem, gdy zasady mojej firmy wymagają ode mnie dostarczenia zespołowi plików (zazwyczaj poprzez adres URL), których chcę użyć. Następnie wykonają różne skany i audyty, a następnie umieszczą pliki w naszej rozłączonej sieci programistycznej. Nie mogę użyć Dockera do pobrania pliku, a następnie wyeksportowania go i przekazania go temu zespołowi, więc inna podana odpowiedź nie była dla mnie opcją.
Na szczęście znalazłem tę odpowiedź na StackOverflow, który zaleca użycie przydatnego narzędzia dostarczonego przez samalba z GitHub: https://github.com/samalba/docker-registry-debug
Oczywiście to narzędzie miało zostać zbudowane przy użyciu Dockera, a powodem tego jest to, że nie mam otwartego dostępu do Dockera :). Ponieważ nie miałem tej opcji, opiszę kroki, które tutaj podjąłem (to wszystko od momentu zatwierdzenia 05fffc4344fd6f866f84c403caae3ba81193dd45 z tego repozytorium):
$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./docker-registry-debug curlme docker ubuntu
Dane wyjściowe tego polecenia to kompletny wiersz polecenia curl, którego można użyć do pobrania pliku:
# Reading user/passwd from env var "USER_CREDS"
# No password provided, disabling auth
# Getting token from https://index.docker.io
# Got registry endpoint from the server: https://registry-1.docker.io
# Got token: signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read
curl -i --location-trusted -I -X GET -H "Authorization: Token signature=e145911c2e458b3842e4e92c90bbf5bf2c17bd56,repository="library/docker",access=read" https://registry-1.docker.io/v1/images/ubuntu/layer
Mam nadzieję, że to pomaga komuś innemu!