Ich versuche, eine private Docker-Registrierung mithilfe des folgenden Images einzurichten: https://github.com/docker/docker-registry
Nur durch Laufen:
docker run -p 5000:5000 registry
Ich kann nur von localhost aus / in dieses Repository ziehen / pushen, aber wenn ich versuche, von einem anderen Computer (unter Verwendung einer privaten Adresse im selben LAN) darauf zuzugreifen, schlägt dies mit einer Fehlermeldung fehl:
*2014/11/03 09:49:04 Error: Invalid registry endpoint https ://10.0.0.26:5000/v1/':
Get https:// 10.0.0.26:5000/v1/_ping: Forbidden. If this private
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry 10.0.0.26:5000` to the daemon's
arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate
at /etc/docker/certs.d/10.0.0.26:5000/ca.crt*
Was mich verrückt macht, ist, dass ich mit: curl 10.0.0.26:5000
und / oder erfolgreich darauf zugreifen kann
curl 10.0.0.26:5000/v1/search
Ich verstehe auch nicht, wo und wie ich die --insecure-registry
Flagge passieren soll .
docker
remote-access
docker-registry
Ofer Eliassaf
quelle
quelle
Antworten:
OK - ich habe die Lösung dafür gefunden - nach einem Tag des Grabens.
Für Docker unter 1.12.1:
Es stellt sich heraus, dass die neue Client-Version die Arbeit mit einer privaten Registrierung ohne SSL verweigert.
Um dies zu beheben, sollte der Dämon auf dem Clientcomputer mit dem unsicheren Flag gestartet werden:
Schreib einfach:
und dann
(Ersetzen Sie die
10.0.0.26
durch Ihre eigene IP-Adresse).Ich würde erwarten, dass die Docker-Leute diese Option zur Pull / Push-Befehlszeile hinzufügen ...
Bearbeiten - alternativ - Sie können das Flag der
DOCKER_OPTS
env-Variablen in / etc / default / docker hinzufügen ... und dannsudo service docker restart
Erneut bearbeiten - Es scheint, dass die Docker-Leute dabei sind - und eine Lösung wird bald kommen: https://github.com/docker/docker/pull/8935
Für Docker 1.12.1:
Bitte folgen Sie unten der Antwort von vikas027 (gültig für Centos)
quelle
docker -H tcp://remote-host-ip:5000 images
, bin aber mit Fehler zurückgekehrt.docker search remote-host-ip:5000/image-name
unddocker pull remote-host-ip:5000/image-name
beide funktionieren einwandfrei. Nun, wie bekomme ich es, um die Bilder--insecure-registry
ist eine Problemumgehung und keine Lösung.Dies hat bei mir unter CentOS 7.2 und Docker 1.12.1 funktioniert (Stand: Datum). Meine private Registrierung v2 wurde ausgeführt
192.168.1.88:5000
. Ändern Sie sie entsprechend. Dies funktioniert auch, wenn Sie mehrere Registrierungen haben. Fügen Sie einfach weitere hinzu--insecure-registry IP:Port
quelle
/lib/systemd/system/docker.service
Ubuntu 16.04.--insecure-registry
ist eine Problemumgehung und keine Lösung.Bearbeiten Sie die Konfigurationsdatei "/ etc / default / docker".
Fügen Sie die Zeile am Ende der Datei hinzu
(Ersetzen Sie die 192.168.2.170 durch Ihre eigene IP-Adresse)
und starten Sie den Docker-Dienst neu
quelle
/etc/init.d/docker
nur Vollgas nicht auf Ubuntu 14.04 nicht funktioniert, überraschend. Aber Ihr Fix zu/etc/default/docker
tut.--insecure-registry
ist eine Problemumgehung und keine Lösung.OK. Hier ist, wie ich es zum Laufen gebracht habe. Wenn Sie diesen Fehler in Docker 1.3.2 oder höher sehen, tun Sie dies
gehe zu
/etc/sysconfig/docker
und Renn
sudo service docker restart
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Ich fand das Folgende sehr nützlich, da es beschreibt, wie der Docker-Dienst selbst konfiguriert ist. https://docs.docker.com/articles/systemd/
Zusammen mit diesem Artikel über den systemctl-Befehl https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
Ich habe die folgende Befehlsreihe in einem Centos 7-basierten Container mit einem Registrierungsabbild verwendet, das von "Docker Pull Registry: 2.1.1" erhalten wurde.
Und in der override.conf wurde Folgendes hinzugefügt.
Beachten Sie, dass mit dem ersten leeren ExecStart = alles gelöscht wird, was bereits vorhanden ist. Fügen Sie daher unbedingt etwas aus der Anweisung /usr/lib/systemd/system/docker.service ExecStart = hinzu, das Sie beibehalten möchten.
Wenn Sie die Option -d (Daemon) nicht angeben, wird der Fehler "Bitte nur ein -H angeben" angezeigt.
Nachdem ich die folgende Befehlsreihe ausgegeben habe, kann ich sehen, dass meine Überschreibungen vorhanden sind.
ANMERKUNG: Die Informationen in den Zeilen Loaded: und Drop-In: in der Statusmeldung sind nützlich, um zu überprüfen, was mit einem bereits vorhandenen Docker-Daemon funktioniert.
HINWEIS: Suchen Sie auch in der Datei Loaded: docker.service nach einer EnvironmentFile =, um weitere Hinweise zu erhalten.
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Verwenden Sie den folgenden Befehl, um {YOUR_REGISTRY} durch Ihre Registrierung zu ersetzen
quelle
boot2docker
ist ein unabhängiges Toolkit, das für den Fragenkontext irrelevant ist.--insecure-registry
ist eine Problemumgehung und keine Lösung.Bearbeiten Sie die Datei docker.service, fügen Sie --insecure-registry xxxx nach dem Flag -d hinzu und starten Sie Docker neu
Dies ist das einzige, was für mich funktioniert hat, die DOCKER_OPTS hatten keine Wirkung
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Docker 1.12.1
Für CentOS 7.2
Für Ubuntu 16.04
Es scheint, dass die Option --insecure-registry sowohl mit als auch ohne das "=" zwischen ihr und der Registrierungs-ID verwendet werden kann.
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Ich habe festgestellt, dass die Docker-Client-Version und die Registrierungs-Docker-Version übereinstimmen müssen, da sonst Konnektivitätsprobleme auftreten, obwohl alles vorhanden ist.
quelle
Zweistufige Lösung (ohne
--insecure-registry
):/etc/docker/certs.d/$HOSTNAME/
VerzeichnisJetzt vertraut Ihr Docker Ihrem selbstsignierten Zertifikat.
quelle
Dies basiert auf der Antwort von vikas027 auf Centos 7 und Docker 1.12
Da ich hinter einem Proxy stehe, war meine vollständige Lösung ...
/etc/systemd/system/docker.service.d/http-proxy.conf
/usr/lib/systemd/system/docker.service
und nicht vergessen neu zu starten :)
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Festlegen der lokalen unsicheren Registrierung im Docker zusammen mit dem Proxy:
1) Fügen Sie in Ubuntu das folgende Flag hinzu - IP der unsicheren Registrierung: Port unter DOCKER_OPTS in der Datei / etc / default / docker
1.1) Konfigurieren Sie die Umgebungsvariable no_proxy so, dass die lokale IP / der Hostname / der Domänenname umgangen wird, da der Proxy eine interaktive Nachricht auslösen kann.
1.2) Wenn der Domänenname konfiguriert ist, vergessen Sie nicht, die Datei / etc / hosts zu aktualisieren, wenn Sie kein DNS verwenden.
1.3) Legen Sie in / etc / default / docker die env-Variablen http_proxy und https_proxy ... fest, damit Bilder von externen Firmen-Hubs heruntergeladen werden können. Format http_proxy = http: // Benutzername: Passwort @ Proxy: Port
2) Starten Sie den Docker-Dienst neu. Wenn Sie als Dienst installiert sind, verwenden Sie den Docker-Neustart des Sudo-Dienstes
3) Starten Sie den Registrierungscontainer neu [sudo docker run -p 5000: 5000 Registrierung: 2]
4) Markieren Sie das gewünschte Image mit dem sudo docker tag imageid IP: port / imagename / tagname ifany
5) Schieben Sie das Bild ... Sudo Docker Push IP: Port / Bildname
6) Wenn Sie das Image von einem anderen Computer abrufen möchten, z. B. B ohne TLS / SSL, dann wenden Sie in B die Setps 1.1.1 und 2 an. Wenn diese Änderungen in Computer B nicht vorgenommen werden, schlägt das Ziehen fehl.
quelle
--insecure-registry
ist eine Problemumgehung und keine Lösung.Um Ihnen Ärger zu ersparen, nutzen Sie einfach den KOSTENLOSEN Registrierungsdienst für private Docker von gitlab - funktioniert hervorragend
https://about.gitlab.com/2016/05/23/gitlab-container-registry/
Ihre Registrierung ist sicher, so dass Sie keine Probleme haben
quelle
Ubuntu 16.04
Datei
/etc/systemd/system/docker.service.d/registry.conf
mit Inhalt erstellen (existiert nicht) :dann
quelle
Zusätzlich zu den obigen Antworten füge ich hinzu, was in "Docker für Mac" für mich funktioniert hat:
quelle