Frage Herunterladen eines Andock-Image für die Übertragung an eine nicht mit dem Internet verbundene Maschine


Ich arbeite in einem Büro, wo mein Laptop mit dem Internet verbunden ist, aber streng kontrolliert. Ich darf keine nicht autorisierte Software installieren.

Meine Entwicklungs-Workstation gehört mir, wie es mir gefällt, aber sie hat keine Internetverbindung.

Gibt es eine Möglichkeit für mich, Docker Images vom Hub als Datei herunterzuladen, die ich dann per Sneaker-Net auf meine Dev-Workstation bringen könnte? Ähnlich wie ich RPMs oder Ruby Gems herunterladen und auf CD brennen kann? Oder können Sie die Bilder nur mit dem Befehl "docker pull" herunterladen?


42
2018-06-24 10:19


Ursprung




Antworten:


Kurz: benutze die save CLI-Befehl

https://docs.docker.com/engine/reference/commandline/save/


Sie können das Bild auf einem Computer, der Zugriff auf das Internet haben, ziehen.

sudo docker pull ubuntu

Dann können Sie dieses Bild in einer Datei speichern

sudo docker save -o ubuntu_image.docker ubuntu

Übertragen Sie die Datei auf den Offline-Computer (USB / CD / was auch immer) und laden Sie das Bild aus der Datei:

sudo docker load -i ubuntu_image.docker

(Bei älteren Versionen war das nur so docker load image.docker, siehe Kommentare für weitere Informationen.)


67
2017-09-02 05:41



genial, wird es heute Abend einen Wirbel machen. Vielen Dank! - shearn89
Pass auf, erkannte, dass sie nicht mehr verwenden docker load <image>stattdessen verwenden docker load < ubuntu_image.docker stattdessen. docs.docker.com/engine/reference/commandline/load - Lionel Chan
musste tun sudo docker load -i ubuntu_image.docker oder es würde nicht funktionieren - John Culviner
Ich habe das gleiche Setup wie @ shearn89, nachdem ich mit doonertools einen lokalen Rechner gezogen habe und die Datei in die Entwicklungsumgebung verschoben habe, bekomme ich den Fehler 'Linux Image kann nicht auf Windows geladen werden'. Sowohl die lokale Maschine als auch die Entwicklungsumgebungen sind Windows. Weißt du, was mit diesem Workflow zu einem Linux-Image führt? - Ryan Haunfelder


Ich weiß, dass es bereits eine akzeptierte Antwort gibt, aber ich wollte diese Lösung anbieten, von der ich denke, dass sie direkt die gestellte Frage anspricht: "Wie lade ich ein Docker-Bild herunter, ohne Docker zu verwenden, um den Abruf durchzuführen?"

Ich habe ein ähnliches Problem, wo die Richtlinien meines Unternehmens erfordern, dass ich ein Team mit den Dateien (normalerweise über URL) versehe, die ich verwenden möchte. Sie führen dann verschiedene Scans und Audits durch und legen dann die Datei (en) in unser getrenntes Entwicklungsnetzwerk. Ich kann Docker nicht verwenden, um die Datei abzurufen, sie dann zu exportieren und an dieses Team zu übergeben, sodass die andere Antwort für mich keine Option war.

Zum Glück habe ich gefunden diese antworten Sie auf StackOverflow, das empfiehlt, ein nützliches Tool von samalba bei GitHub zu verwenden: https://github.com/samalba/docker-registry-debug

Natürlich sollte dieses Tool mit Docker gebaut werden, und ein Teil des Grundes, warum ich es brauche, ist, weil ich keinen offenen Zugang zu Docker habe :). Also, da ich diese Option nicht hatte, werde ich die Schritte beschreiben, die ich hier gemacht habe (dies ist alles von 05-08fc4344fd6f866f84c403caae3ba81193dd45 aus diesem Repo commit):

$ 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=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

Hoffe das hilft jemand anderem!


19
2018-01-01 04:51