176 votes

Ajouter un registre non sécurisé à Docker

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

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

Après avoir chargé le daemon et redémarré le service docker, systemd montre 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 cours 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

Pousser les images vers 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 à faire ? Est-ce que quelque chose m'échappe ?

UPDATE

Le problème a été résolu en ajoutant un fichier /etc/docker/daemon.json avec le contenu suivant

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

Et ensuite redémarrer docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Après ce registre non sécurisé hostname.cloudapp.net:500 travaux.

5 votes

Bien que quelqu'un vous ait devancé dans ce cas (après vous avoir accordé un généreux délai de grâce), cela aurait été un excellent cas pour une auto-réponse.

2 votes

Excellent ! J'ai eu ce message d'erreur pendant "oc cluster up" avec Openshift javamonamour.org/2017/12/docker-insecure-registry.html et votre solution l'a résolu !

3 votes

Je sais que vous explicitement Dans votre question, vous l'avez demandé en rapport avec CentOS, mais pour tous ceux qui, comme moi, ont atterri ici à la recherche d'une solution pour macOS, il est possible de le faire par l'intermédiaire de l'interface graphique, comme indiqué dans le document la réponse à cette question .

219voto

Matt Hulse Points 1350

(Copie de la réponse de la question)

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

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

et ensuite redémarrer docker.

4 votes

Je pense que c'est la bonne solution sur les sites debian-likes. Sur Red Hat, vous devez l'ajouter à /etc/sysconfig/docker comme l'une des options, par exemple à partir d'une installation Openshift : OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' Sur les Suse-likes, je ne sais pas.

0 votes

Sur DigitalOcean, l'image Docker en 1 clic pense toujours utiliser DOCKER_OPTS au lieu de l'option daemon.json version du fichier. Merci !

1 votes

@erikbwork Sur Fedora 28 avec Docker 1.13.1 à partir des dépôts de paquets par défaut, l'approche avec /etc/docker/daemon.json fonctionne bien.

31voto

Sunny Points 69

Créer /etc/docker/daemon.json et ajouter le contenu ci-dessous, puis effectuer un redémarrage de docker sur CentOS 7 a résolu le problème.

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

25voto

Nikita Points 3611

La solution avec le /etc/docker/daemon.json n'a pas fonctionné pour moi sur Ubuntu.

J'ai pu configurer les registres non sécurisés de 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 méthode peut être utilisée pour configurer un répertoire personnalisé pour le stockage des images et des volumes docker, les serveurs DNS par défaut, etc.

Maintenant, après que le démon Docker ait redémarré (après avoir exécuté sudo service docker restart ), en cours d'exécution docker info montrera :

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

3voto

Pour moi, sous Ubuntu 20.04, le meilleur moyen est de modifier le service systemd.

/lib/systemd/system/docker.service

et ajoutez cette ligne après [Service].

Environment=DOCKER_OPTS=--insecure-registry=10.0.0.10:6000

ou cela peut être fait automatiquement par 2 commandes utilisant sed, qui ajoutera la ligne après [Service].

sed 's/\[Service\]/\[Service\] \nEnvironment=DOCKER_OPTS=--insecure-registry=10.0.0.10:6000/' /lib/systemd/system/docker.service > /lib/systemd/system/docker.service.tmp
mv /lib/systemd/system/docker.service.tmp /lib/systemd/system/docker.service

2voto

Sur Mac. source

  1. Goto ~/Library/Containers/com.docker.docker/Data/database
  2. Il y a un dépôt .git (.git)
  3. Réinitialisation à HEAD git reset --hard
  4. maintenant vous avez com.docker.driver.amd64-linux dossier
  5. Allez dans ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker
  6. il y a votre daemon.json fichier

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X