Nach Diskussion mit @shykes im IRC.
Wenn der Docker-Daemon ausgeführt wird, sollte er Push/Pull-Anforderungen akzeptieren. Dadurch können zwei Daemons Bilder auf p2p- oder zentralisierte Weise untereinander senden.
Außerdem sollte es eine -norun-Option geben, um die Ausführung zu deaktivieren. Dies ist nützlich, wenn Sie ein dediziertes Image-Repository ausführen. In diesem Modus sollte Docker auch ohne lxc oder das Modul aufs funktionieren.
Sobald dies existiert, könnte die aktuelle öffentliche Repo-Implementierung durch einen Docker-Daemon ersetzt werden.
Richtig in allen Punkten :)
Was wir anstreben, ist ein System, das mit der Go-Sprache vergleichbar ist. z.B. Sie können ein Paket überall hosten, und als Annehmlichkeit gibt es einen zentral kuratierten Namensraum mit Richtlinien für Qualität, Auditierung, Sicherheit usw.
Dies ist eine Unterkomponente von #21.
Ich habe den Titel geändert, um den Unterschied zu #350 zu verdeutlichen.
In diesem Problem geht es darum, die Peer-to-Peer-Push/Pull-Funktion zu Docker hinzuzufügen. Mit dieser Funktion können 2 Docker-Hosts Bilder direkt austauschen, als ob sie Bilder mit der Registrierung austauschen würden.
Denken Sie hier ein wenig mehr an Einzelheiten.
docker push -d other.docker.com myimage
?POST
enthalten, die ein Bild an einen anderen Daemon sendet. Oder vielleicht wird das durch die von der Registrierung verwendete API ersetzt.Am Montag, den 8. April 2013 um 20:21 Uhr schrieb Caleb Spare [email protected] :
- Wollen wir das Pushen zu _und_ das Pullen von einem anderen Daemon unterstützen?
Ja, ich denke schon. Wenn ich mich für einen entscheiden müsste, würde ich push to start wählen.
- Sollte der Docker Image-Pushs (und -Pulls) immer akzeptieren, oder tut er es
müssen im Promiscuous-Modus ausgeführt werden?Ich finde es gut, so anzufangen. Wir können es zu einem bedingten Schalter machen,
z.B. 'docker -d --no-push-pull'
- Was ist mit Daemon - Daemon-Authentifizierung und -Autorisierung?
Ich denke, darüber können wir uns später Gedanken machen.
- Wie lautet der Befehl, um zu einem anderen Daemon zu pushen? Docker-Push -d
other.docker.com meinbild?Dies erscheint vernünftig. @samalba @kencochrane und @shin- wer sind
Die Implementierung der Registrierung könnte hier eine Meinung haben.
- Wird die Übertragung genau denselben Mechanismus verwenden wie die reguläre
Registry-Push/Pull? (HTTP usw.)Ja, das ist das Ziel.
- #21 https://github.com/dotcloud/docker/issues/21 ist damit verbunden
Ausgabe. Beispielsweise würde es eine Route zum POSTen eines Bildes enthalten
ein weiterer Dämon. Oder vielleicht wird das durch die API der Registrierung ersetzt
Verwendet.Absolut. Ich habe angefangen, an Nr. 21 zu arbeiten, wie wäre es, wenn ich die Basis mit Ihnen teile
und wir arbeiten parallel an den 2 verschiedenen Teilen der API?
@shykes Das klingt großartig. Einfach den Code #21 zu einer Filiale schieben?
Dies wird mit der 1.0-API erheblich einfacher.
Dies wäre ein großartiges Plugin, wenn jemand daran interessiert ist, daran zu arbeiten, sagen Sie es bitte hier. Ich werde Sie mit frühen API-Dokumenten und Tipps für den Einstieg versorgen.
Das klingt interessant. Gibt es eine feste Deadline für diese Funktion? Wenn nicht, kann ich es nehmen und bis Ende dieses Monats daran arbeiten (oder vielleicht im September. Ich habe in den letzten Wochen einige andere Arbeiten zu erledigen.)
@shykes Es wäre großartig, wenn ich auf einen detaillierteren Plan der 1.0-APIs zugreifen könnte.
@tobstarr , wenn Sie Lust haben, Ihre Go-Registry-Implementierung zu verwenden, damit Docker einen Push erhalten kann ... Ich denke, das wäre ein Killer-Feature! Gerne helfe ich Ihnen bei der Zusammenführung.
Das interessiert mich immer noch. Wenn jemand es ausprobieren möchte, lass es mich wissen :)
+1 für mich
Das würde ich mir echt gerne bauen lassen. Besteht die Grundidee darin, die Registrierungs-API über die Remote-API zu legen? Es sieht so aus, als ob der Endpunkt /images/:id/json
mehr oder weniger kompatibel ist und alles andere nicht kollidiert.
Es wäre wirklich schön, wenn die Registrierungs-API eine Teilmenge der Remote-API wäre. Alternativ könnten wir, denke ich, einen separaten Port-/URL-Namespace haben, der die Registrierung war. Oder sogar eine ganz andere API?
+1 - Ich würde gerne sehen, dass es genauso funktioniert wie die Registrierung, sodass Sie sich nicht darum kümmern müssen, ob Sie mit einer Registrierung oder einem Remote-Docker-Daemon sprechen.
Ich bin mir nicht sicher, wie viel Arbeit das wäre, aber wenn sie gleich sind, könnte die Push/Pull-Funktionalität der Registrierung im Wesentlichen zu einer leichten Authentifizierung werden, die vor einem Docker-Daemon sitzt.
Eine funktionierende Implementierung über SSH hier: https://github.com/docker/docker/pull/9304
Kann mir bitte jemand sagen, ob wir diese Funktion in naher Zukunft in irgendeiner Version bekommen werden?
Ich würde diese Funktion gerne sehen
+1 Würde das auch gerne sehen!
+1.
+1 dazu. Derzeit verwenden wir docker save | ssh -C docker load
, um Bilder zu übertragen, aber das überträgt _alles_, einschließlich der Teile, die wir bereits haben. Wäre viel einfacher, wenn ich nur die wichtigen Bits übertragen könnte.
_USER-UMFRAGE_
_Der beste Weg, um über Änderungen in dieser Diskussion benachrichtigt zu werden, besteht darin, oben rechts auf die Schaltfläche "Abonnieren" zu klicken._
Die unten aufgeführten Personen haben Ihre sinnvolle Diskussion mit einem zufälligen +1 gewürdigt:
@xiaods
@hustcat
@leonardschneider
@v00rh33s
Sieht immer noch nach einem gültigen Feature aus. Ich bin mir nicht sicher, ob es mit Sicherheits-/Verifizierungsmaterial möglich ist.
Gedanken @tonistiigi ?
@LK4D4 Ich denke, wir können es schließen, wenn jemand ein echtes Vorschlagsdesign abgeben kann, dann kann er ein anderes Problem eröffnen, um das Thema zu verfolgen.