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 .

1voto

armourbear Points 345

Toute personne cherchant à ajouter un registre non sécurisé sur amazon linux 2 : Vous devrez modifier le paramètre sous /etc/sysconfig/docker et ensuite redémarrer le démon docker : voici à quoi ressemble mon /etc/sysconfig/docker.

# The max number of open files for the daemon itself, and all
# running containers.  The default value of 1048576 mirrors the value
# used by the systemd service unit.
DAEMON_MAXFILES=1048576

# Additional startup options for the Docker daemon, for example:
# OPTIONS="--ip-forward=true --iptables=true"
# By default we limit the number of open files per container
OPTIONS="--default-ulimit nofile=1024:4096 --insecure-registry yourinsecureregistryhostname:port"

# How many seconds the sysvinit script waits for the pidfile to appear
# when starting the daemon.
DAEMON_PIDFILE_TIMEOUT=10

0voto

user3598726 Points 344

Pour moi, la solution était d'ajouter le registre ici :

/etc/sysconfig/docker-registries

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

0voto

SK Singh Points 11

J'ai rencontré un problème similaire après avoir configuré le registre privé interne JFrog Docker sur Amazon Linux.

J'ai fait ce qui suit pour résoudre le problème :

Ajout de "--insecure-registry xx.xx.xx.xx:8081" en modifiant la variable OPTIONS dans le fichier /etc/sysconfig/docker :

OPTIONS="--default-ulimit nofile=1024:40961 --insecure-registry hostname:8081"

Puis j'ai redémarré le docker.

J'ai ensuite pu me connecter au registre local de docker en utilisant :

docker login -u admin -p password hostname:8081

-1voto

Gajendra D Ambi Points 1106

Si vous avez déjà un fichier config.json, le fichier final devrait ressembler à ceci... Ici registry.myprivate.com est celui qui me posait problème.

{ "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"] }

-3voto

Créer /etc/docker/daemon.json où vous voulez tirer des images docker et ajoutez le contenu suivant à ce fichier

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

Reportez-vous à mon article de blog pour une explication approfondie de la création d'un registre docker privé : https://geekdosage.com/how-to-create-a-private-docker-registry-in-ubuntu-20-04/

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