Mir ist klar, dass es bereits eine akzeptierte Antwort gibt, aber ich wollte diese Lösung anbieten, die meiner Meinung nach direkter auf die gestellte Frage eingeht: "Wie lade ich ein Docker-Image herunter, ohne Docker zum Abrufen zu verwenden?"
Ich habe ein ähnliches Problem, bei dem die Richtlinien meines Unternehmens verlangen, dass ich einem Team die Datei (en) (normalerweise über eine URL) zur Verfügung stelle, die ich verwenden möchte. Sie führen dann verschiedene Scans und Audits durch und platzieren die Datei (en) dann in unserem getrennten Entwicklungsnetzwerk. Ich kann Docker nicht verwenden, um die Datei abzurufen, sie dann zu exportieren und an dieses Team zu übergeben, daher war die andere bereitgestellte Antwort für mich keine Option.
Zum Glück fand ich dieser antworten Sie auf StackOverflow, der die Verwendung eines nützlichen Tools empfiehlt, das von samalba bei GitHub bereitgestellt wird: https://github.com/samalba/docker-registry-debug
Natürlich sollte dieses Tool mit Docker erstellt werden, und ein Teil des Grundes, warum ich es brauche, ist, dass ich keinen offenen Zugang zu Docker habe :). Da ich diese Option nicht hatte, werde ich die Schritte, die ich hier unternommen habe, darlegen (dies ist alles ab Commit 05fffc4344fd6f866f84c403caae3ba81193dd45 aus diesem Repo):
$ go get github.com/dustin/go-humanize$ go build$ ./docker-registry-debug --help$ ./docker-registry-debug curlme docker ubuntu
Die Ausgabe dieses Befehls ist eine vollständige curl-Befehlszeile, die zum Herunterladen der Datei verwendet werden kann:
# 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=readcurl -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
Hoffe das hilft jemand anderem!