web-dev-qa-db-fra.com

Ajouter un registre non sécurisé à Docker

J'ai un docker 1.12 fonctionnant sur CentOS. J'essaie d'y ajouter un registre non sécurisé et les éléments mentionnés dans la documentation ne fonctionnent tout simplement pas. Le système utilise systemd et j'ai donc créé un fichier /etc/systemd/system/docker.service.d/50-insecure-registry.conf.

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

Après le chargement du démon et le redémarrage du service Docker, Systemd indique que la variable d'environnement est présente.

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

Mais quand je lance docker info je ne vois pas ce registre non sécurisé ajouté

$ 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

L'envoi d'images à hostaneme.cloudapp.net échoue avec

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

Y a-t-il quelque chose qui pourrait être fait? Est-ce que je manque quelque chose?

UPDATE

Résolution du problème en ajoutant un fichier /etc/docker/daemon.json avec le contenu suivant

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

Et puis redémarrer docker

Sudo systemctl daemon-reload
Sudo systemctl restart docker

Après cela, le registre non sécurisé hostname.cloudapp.net:500 fonctionne.

79
EvgeniySharapov

(Copie de la réponse d'une question)

Pour ajouter un registre de menu fixe non sécurisé, ajoutez le fichier /etc/docker/daemon.json avec le contenu suivant:

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

puis redémarrez docker.

107
Matt Hulse

La création du fichier /etc/docker/daemon.json et l'ajout du contenu ci-dessous, puis le redémarrage du menu fixe sur CentOS 7 ont résolu le problème.

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

La solution avec le fichier /etc/docker/daemon.json ne fonctionnait pas pour moi sur Ubuntu.

J'ai pu configurer des registres non sécurisés Docker sur Ubuntu en fournissant des options de ligne de commande au démon Docker dans le fichier /etc/default/docker, par exemple:

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

La même manière peut être utilisée pour configurer un répertoire personnalisé pour le stockage d'images et de volumes de docker, les serveurs DNS par défaut, etc.

Maintenant, après le redémarrage du démon Docker (après l'exécution de Sudo service docker restart), l'exécution de docker info indiquera:

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