Je me rends compte qu'il existe déjà une réponse acceptée, mais je souhaitais proposer cette solution qui, je pense, répondait plus directement à la question posée: "Comment télécharger une image Docker sans utiliser Docker pour effectuer la récupération?"
J'ai un problème similaire, où les politiques de mon entreprise m'obligent à fournir à l'équipe les fichiers (généralement au moyen d'une URL) que je souhaite utiliser. Ils effectueront ensuite diverses analyses et audits, puis placeront le (s) fichier (s) sur notre réseau de développement déconnecté. Je ne peux pas utiliser Docker pour récupérer le fichier, puis l'exporter et le remettre à cette équipe, de sorte que l'autre réponse fournie n'était pas une option pour moi.
Heureusement, j'ai trouvé cette réponse sur StackOverflow, qui recommande d'utiliser un outil utile fourni par samalba sur GitHub: https://github.com/samalba/docker-registry-debug
Bien entendu, cet outil devait être créé à l'aide de Docker, et l'une des raisons pour lesquelles j'en ai besoin est parce que je n'ai pas d'accès libre à Docker :). Donc, comme je n'avais pas cette option, je vais expliquer les étapes que j'ai suivies ici (tout cela est à partir du commit 05fffc4344fd6f866f84c403caae3ba81193dd45 de ce dépôt):
$ go get github.com/dustin/go-humanize
$ go build
$ ./docker-registry-debug --help
$ ./docker-registry-debug curlme docker ubuntu
Le résultat de cette commande est une ligne de commande complète curl qui peut être utilisée pour télécharger le fichier:
# 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
J'espère que ceci aide quelqu'un d'autre!