I have a docker 1.12 running on CentOS. I am trying to add insecure registry to it and things mentioned in documentation just don't work. The system uses systemd so I created a /etc/systemd/system/docker.service.d/50-insecure-registry.conf file.
$ cat /etc/systemd/system/docker.service.d/50-insecure-registry.conf
[Service]
Environment='DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"'
After loading daemon and restarting docker service, systemd shows that the environment variable is there
$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"
But when I run docker info I don't see that insecure registry added
$ 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
Pushing images to hostaneme.cloudapp.net fails with
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
Is there something that could be done ? Am I missing something ?
UPDATE
Resolved the issue by adding a file /etc/docker/daemon.json with following content
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
And then restart docker
sudo systemctl daemon-reload
sudo systemctl restart docker
After that insecure registry hostname.cloudapp.net:500 works.
(Copying answer from question)
To add an insecure docker registry, add the file /etc/docker/daemon.json with the following content:
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
and then restart docker.
Creating /etc/docker/daemon.json file and adding the below content and then doing a docker restart on CentOS 7 resolved the issue.
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
The solution with the /etc/docker/daemon.json file didn't work for me on Ubuntu.
I was able to configure Docker insecure registries on Ubuntu by providing command line options to the Docker daemon in /etc/default/docker file, e.g.:
# /etc/default/docker
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"
The same way can be used to configure custom directory for docker images and volumes storage, default DNS servers, etc..
Now, after the Docker daemon has restarted (after executing sudo service docker restart), running docker info will show:
Insecure Registries:
a.example.com
b.example.com
127.0.0.0/8