Я усвідомлюю, що вже є прийнята відповідь, проте я хотів запропонувати це рішення, але, на мою думку, безпосередньо стосується поставленого питання: "Як завантажити зображення Docker без використання Docker для виконання пошуку?"
У мене є аналогічна проблема, коли політика моєї компанії вимагає від мене надати команді файл (и) (як правило, за URL-адресою), який я хочу використовувати. Потім вони проведуть різні сканування та аудити, а потім розмістять файл (и) у нашій відключеній мережі розробки. Я не можу використовувати Docker для отримання файлу, а потім експортувати його та передавати цій команді, тому інша надана відповідь не була для мене варіантом.
На щастя, я знайшов цю відповідь на StackOverflow, який рекомендує використовувати корисний інструмент, наданий samalba на GitHub: https://github.com/samalba/docker-registry-debug
Звичайно, цей інструмент мав бути створений за допомогою Docker, і частина причини, яка мені потрібна, полягає в тому, що я не маю відкритого доступу до Docker :). Отже, оскільки у мене не було цього варіанту, я поясню кроки, які я вжив тут (це все сталося з фіксації 05fffc4344fd6f866f84c403caae3ba81193dd45 з цього репо):
$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./docker-registry-debug curlme docker ubuntu
Вихід цієї команди - це повний командний рядок curl, який можна використовувати для завантаження файлу:
# 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
Сподіваюсь, це допомагає комусь іншому!