Standardmäßig, wenn ich einen Befehl gebe:
sudo docker pull ruby:2.2.1
Es wird standardmäßig von der offiziellen Website docker.io abgerufen.
Pulling repository docker.io/library/ruby
Wie ändere ich es in meine private Registrierung? Das heißt, wenn ich ausstelle
sudo docker pull ruby:2.2.1
es wird aus meiner eigenen privaten Registrierung gezogen, die Ausgabe ist so etwas wie:
Pulling repository my_private.registry:port/library/ruby
docker
docker-registry
Mainframer
quelle
quelle
Antworten:
UPDATE: Nach Ihrem Kommentar ist es derzeit nicht möglich, die Standardregistrierung zu ändern. Weitere Informationen finden Sie in diesem Problem .
Sie sollten in der Lage sein, den Host und den Port durch Ihren eigenen zu ersetzen:
Wenn der Server remote ist / über eine Authentifizierung verfügt, müssen Sie sich möglicherweise mit folgendem Server anmelden:
Dann laufen:
quelle
docker pull <YOUR-DOMAIN>:8080/test-image
war in Ordnung. Aber was ich will istdocker pull test-image
, was ohne DOMAIN und Port zu spezifizieren und ohne Login.@scopes
in npm tun , um neue Namespaces ohne Konflikt mit bestehenden einzuführen. Wenn der Hostname der Registrierung im Image-Namen enthalten ist, wird das Zwischenspeichern / Proxying / Sperren der Registrierung innerhalb eines Unternehmens oder Projekts schwierig. Dies beschreibt es gut: informit.com/articles/article.aspx?p=2464012&seqNum=3Es stellt sich heraus , dies ist tatsächlich möglich, aber nicht die Original-Docker CE oder EE - Version.
Sie können entweder Red Hocks Docker-Fork mit dem Flag '--add-registry' verwenden oder Docker aus der Quelle selbst erstellen, wobei registry / config.go so geändert wurde, dass Ihr eigener fest codierter Standard-Registrierungs-Namespace / -Index verwendet wird.
quelle
--add-registry
mehr funktioniert.--block-registry index.docker.io
Option auch verwenden , um die Standardregistrierung zu entfernen.--add-registry
Pull-Anfrage wurde nicht zusammengeführt . Diese Funktion wurde letztendlich abgelehnt ( # 11816 ).Wenn Sie die Fedora-Distribution verwenden, können Sie die Datei ändern
Hinzufügen der Domain docker.io
quelle
--add-registry
. Das Feature wird nicht von Docker in angenommen wird Pull - Anforderung wurde nicht verschmolzen . (Auch Feature wurde letztendlich abgelehnt ( # 11816 ).Es scheint, dass es aufgrund der Fragmentierung innerhalb der Community nicht unterstützt wird (dh zwei Benutzer würden unterschiedliche Bilder erhalten
ubuntu:latest
). Sie müssen lediglich den Host vor dem Bildnamen hinzufügen. Sehen Sie sich dieses Github-Problem an, um an der Diskussion teilzunehmen .(Beachten Sie, dass dies kein Kommentar ist, sondern nur eine sehr kurze Zusammenfassung der Diskussion, die in der erwähnten Github-Ausgabe verfolgt werden kann.)
quelle
Ich habe versucht, die folgenden Optionen in /etc/docker/daemon.json hinzuzufügen. (Ich habe CentOS7 verwendet)
Danach wurde der Docker-Daemon neu gestartet. Und es funktioniert ohne docker.io. Ich hoffe dieser jemand wird hilfreich sein.
quelle
--add-registry
Pull-Anfrage wurde nicht zusammengeführt .Die offizielle Position von Docker wird in Ausgabe Nr. 11815 erläutert :
Red Hat hatte eine spezifische Implementierung, die dies erlaubte (siehe Antwort, aber es wurde von Docker Upstream Projet abgelehnt ). Es stützte sich auf
--add-registry
Argumente, die in/etc/containers/registries.conf
RHEL / CentOS 7 enthalten waren.quelle
Früher konnte dies mit
DOCKER_OPTS
der/etc/default/docker
Konfigurationsdatei erreicht werden, die unter Ubuntu 14:04 funktionierte und einige Probleme hatte Ubuntu 15:04 . Ich bin mir nicht sicher, ob dies behoben wurde.Die folgende Zeile muss in die Datei
/etc/default/docker
auf dem Host eingefügt werden, auf dem der Docker-Daemon ausgeführt wird. Die Änderungspunkte zur privaten Registrierung werden in Ihrem lokalen Netzwerk installiert. Hinweis: Sie müssten den Docker-Dienst neu starten, gefolgt von dieser Änderung.quelle
Ich addiere mich zu der ursprünglichen Antwort von Guy, die heute (bald 2020) noch gültig ist.
Das Überschreiben der Standard-Docker-Registrierung, wie Sie es tun würden
maven
, ist eigentlich keine gute Praxis.Beim Benutzen
maven
ziehen Sie Artefakte aus dem Maven Central Repository über Ihr lokales Repository-Verwaltungssystem, das als Proxy fungiert. Diese Artefakte sind einfache, rohe Bibliotheken (Gläser), und es ist ziemlich unwahrscheinlich, dass Sie Gläser mit demselben Namen verschieben.Auf der anderen Seite sind Docker-Images voll funktionsfähig, ausführbar und in Umgebungen, und es ist absolut sinnvoll, ein Image aus dem Docker Hub abzurufen, zu ändern und dieses Image in Ihr lokales Registrierungsverwaltungssystem mit demselben Namen zu übertragen, da es genau so ist Wie der Name schon sagt, nur in Ihrem Unternehmenskontext. In diesem Fall wäre der einzige Unterschied zwischen den beiden Bildern genau ihr Weg !!
Daher muss die folgende Regel festgelegt werden: Das Präfix eines Bildes gibt seinen Ursprung an; Wenn ein Image kein Präfix hat, wird es standardmäßig aus Docker Hub abgerufen.
quelle
Sie haben es noch nicht versucht, aber vielleicht könnte der DNS-Auflösungsprozess durch Hinzufügen einer Zeile
/etc/hosts
fürhub.docker.com
oder etwas Ähnliches (docker.io
?) Entführt werden?quelle