Adicionar Insecure Registry to Docker


107

Eu tenho um docker 1.12 rodando no CentOS. Estou tentando adicionar um registro inseguro a ele e as coisas mencionadas na documentação simplesmente não funcionam. O sistema usa systemdentão criei um /etc/systemd/system/docker.service.d/50-insecure-registry.confarquivo.

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

Depois de carregar o daemon e reiniciar o serviço docker, o systemd mostra que a variável de ambiente está lá

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

Mas quando eu executo docker info, não vejo aquele registro inseguro adicionado

$ 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

Enviar imagens para hostaneme.cloudapp.netfalhar com

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

Existe algo que poderia ser feito? Estou esquecendo de algo ?

ATUALIZAR

Resolvido o problema adicionando um arquivo /etc/docker/daemon.jsoncom o seguinte conteúdo

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

E então reinicie o docker

sudo systemctl daemon-reload
sudo systemctl restart docker

Depois que o registro inseguro hostname.cloudapp.net:500funcionar.


4
Embora alguém tenha vencido você nesse caso (depois de dar a você um generoso período de carência), esse seria um excelente caso para uma auto-resposta.
BlackVegetable

2
excelente! Recebi esta mensagem de erro enquanto "oc cluster up" com Openshift javamonamour.org/2017/12/docker-insecure-registry.html e sua correção resolveu!
Pierluigi Vernetto

2
Sei que você pediu isso explicitamente em relação ao CentOS em sua pergunta, mas para quem chegar aqui procurando uma solução macOS como eu fiz, isso pode ser feito por meio da GUI agora, conforme mencionado na resposta a esta pergunta .
anotherdave

Respostas:


135

(Copiando a resposta da pergunta)

Para adicionar um registro docker inseguro, adicione o arquivo /etc/docker/daemon.jsoncom o seguinte conteúdo:

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

e reinicie o docker.


3
Eu acredito que essa é a solução certa para o debian-likes. Em Red Hat likes, você deseja adicioná-lo /etc/sysconfig/dockercomo uma das opções, por exemplo, de uma instalação Openshift: OPTIONS='--insecure-registry=172.30.0.0/16 --others [...]' Em Suse-likes eu não sei.
erikbwork

No DigitalOcean, a imagem Docker de 1 clique ainda pensa em usar DOCKER_OPTS em vez da daemon.jsonversão do arquivo. Obrigado!
Eric Pugh

@erikbwork No Fedora 28 com Docker 1.13.1 dos repositórios de pacotes padrão, a abordagem /etc/docker/daemon.jsonfunciona bem.
nó de

7
não consigo reiniciar o docker depois de criar este daemon.json, mostrando o erro: 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

Obrigado, funciona. Talvez sem a porta, porque se a porta 80 {"insecure-registries": ["hostname.cloudapp.net"]}
Hernaldo Gonzalez

16

Criar o arquivo /etc/docker/daemon.json, adicionar o conteúdo abaixo e reiniciar o docker no CentOS 7 resolveu o problema.

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

12

A solução com o /etc/docker/daemon.jsonarquivo não funcionou para mim no Ubuntu.

Consegui configurar registros inseguros do Docker no Ubuntu, fornecendo opções de linha de comando para o daemon do Docker no /etc/default/dockerarquivo, por exemplo:

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

Da mesma forma, pode ser usado para configurar o diretório personalizado para imagens docker e armazenamento de volumes, servidores DNS padrão, etc.

Agora, depois que o daemon do Docker for reiniciado (após a execução sudo service docker restart), a execução docker infomostrará:

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

1

Para mim, a solução foi adicionar o registro aqui:

/ etc / sysconfig / docker-registries

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

0

Se você já tem um arquivo config.json, o arquivo final deve ser parecido com isso ... Aqui registry.myprivate.comestá o que estava me causando problemas.

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


0

Acontece que eu encontrei um tipo de problema semelhante após configurar o registro privado JFrog Docker interno local no Amazon Linux.

O que fiz para resolver o problema:

Adicionado "--insecure-registry xx.xx.xx.xx: 8081" modificando a variável OPTIONS no arquivo / etc / sysconfig / docker:

OPTIONS = "- default-ulimit nofile = 1024: 40961 - nome do host de registro inseguro: 8081"

Em seguida, reiniciou a janela de encaixe.

Consegui então fazer login no registro docker local usando:

docker login -u admin -p senha hostname: 8081

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.