Fügen Sie Docker eine unsichere Registrierung hinzu


106

Ich habe ein Docker 1.12 unter CentOS. Ich versuche, eine unsichere Registrierung hinzuzufügen, und die in der Dokumentation genannten Dinge funktionieren einfach nicht. Das System verwendet, systemdalso habe ich eine /etc/systemd/system/docker.service.d/50-insecure-registry.confDatei erstellt.

$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'

Nach dem Laden des Daemons und dem Neustart des Docker-Dienstes zeigt systemd an, dass die Umgebungsvariable vorhanden ist

$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"

Aber wenn ich laufe, docker infosehe ich nicht, dass die unsichere Registrierung hinzugefügt wurde

$ docker info
........
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
    127.0.0.0/8

Das Verschieben von Bildern hostaneme.cloudapp.netschlägt fehl

Pushing application     (hostname.cloudapp.net:5000/application:latest)...
The push refers to a repository     [hostname.cloudapp.net:5000/mozart_application]
ERROR: Get https://hostname.cloudapp.net:5000/v1/_ping: http: server gave HTTP response to HTTPS client

Gibt es etwas, das getan werden könnte? Vermisse ich etwas

AKTUALISIEREN

Das Problem wurde behoben, indem eine Datei /etc/docker/daemon.jsonmit folgendem Inhalt hinzugefügt wurde

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

Und dann Docker neu starten

sudo systemctl daemon-reload
sudo systemctl restart docker

Danach hostname.cloudapp.net:500funktioniert die unsichere Registrierung .


4
Während Sie in diesem Fall von jemandem geschlagen wurden (nachdem Sie eine großzügige Nachfrist erhalten haben), wäre dies ein hervorragender Fall für eine Selbstantwort gewesen.
BlackVegetable

2
Ausgezeichnet! Ich hatte diese Fehlermeldung während "oc cluster up" mit Openshift javamonamour.org/2017/12/docker-insecure-registry.html und Ihr Fix hat es gelöst!
Pierluigi Vernetto

2
Ich weiß, dass Sie dies in Bezug auf CentOS in Ihrer Frage ausdrücklich angefordert haben, aber für jeden, der hier landet und nach einer MacOS-Lösung sucht, wie ich es getan habe, kann dies jetzt über die GUI erfolgen, wie in der Antwort auf diese Frage erwähnt .
Anotherdave

Antworten:


133

(Antwort von Frage kopieren)

Fügen Sie die Datei /etc/docker/daemon.jsonmit dem folgenden Inhalt hinzu, um eine unsichere Docker-Registrierung hinzuzufügen :

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

und starten Sie Docker neu.


3
Ich glaube, das ist die richtige Lösung für Debian-Likes. Auf Red Hat-Likes möchten Sie es /etc/sysconfig/dockerals eine der Optionen hinzufügen , z. B. aus einer Openshift-Installation: OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' Auf Suse-Likes weiß ich nicht.
Erikbwork

In DigitalOcean glaubt das 1-Klick-Docker-Image immer noch, DOCKER_OPTS im Vergleich zur daemon.jsonDateiversion zu verwenden. Vielen Dank!
Eric Pugh

@erikbwork Unter Fedora 28 mit Docker 1.13.1 aus den Standardpaket-Repos /etc/docker/daemon.jsonfunktioniert der Ansatz mit einwandfrei .
Anothernode

7
Docker kann nach dem Erstellen dieser daemon.json nicht neu gestartet werden und zeigt Fehler an: Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. @matt
AATHITH RAJENDRAN

Danke, es funktioniert. Im Mai ohne Port, weil Port 80 {"unsichere Registrierungen": ["hostname.cloudapp.net"]}
Hernaldo Gonzalez

16

Das Erstellen der Datei /etc/docker/daemon.json und das Hinzufügen des folgenden Inhalts sowie das anschließende Neustarten des Dockers unter CentOS 7 haben das Problem behoben.

{
    "insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}

12

Die Lösung mit dem /etc/docker/daemon.json Datei hat bei Ubuntu bei mir nicht funktioniert.

Ich konnte unsichere Docker-Registrierungen unter Ubuntu konfigurieren, indem ich dem Docker-Dämon in der /etc/default/dockerDatei Befehlszeilenoptionen zur Verfügung stellte , z.

# /etc/default/docker    
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"

Auf die gleiche Weise können Sie benutzerdefinierte Verzeichnisse für Docker-Images und Volumes-Speicher, Standard-DNS-Server usw. konfigurieren.

Nach dem Neustart des Docker-Dämons (nach der Ausführung sudo service docker restart) wird beim Ausführen docker infoFolgendes angezeigt:

Insecure Registries:
  a.example.com
  b.example.com
  127.0.0.0/8

1

Für mich bestand die Lösung darin, die Registrierung hier hinzuzufügen:

/ etc / sysconfig / docker-registries

DOCKER_REGISTRIES=''
DOCKER_EXTRA_REGISTRIES='--insecure-registry  b.example.com'

0

Wenn Sie bereits eine config.json-Datei haben, sollte die endgültige Datei ungefähr so ​​aussehen ... Hier registry.myprivate.comist die, die mir Probleme bereitete .

{ "auths": { "https://index.docker.io/v1/": { "auth": "xxxxxxxxxxxxxxxxxxxx==" }, "registry.myprivate.com": { "auth": "xxxxxxxxxxxxxxxxxxxx=" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.8 (linux)" }, "insecure-registries" : ["registry.myprivate.com"] }

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.