我在CentOS上运行了一个docker 1.12。我试图添加不安全的注册表,文档中提到的东西不起作用。系统使用systemd
所以我创建了一个/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"'
加载守护程序并重新启动docker服务后,systemd会显示环境变量
$ sudo systemctl show docker | grep Env
Environment=DOCKER_OPTS=--insecure-registry="hostname.cloudapp.net:5000"
但是当我运行docker info
时,我没有看到添加了不安全的注册表
$ 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
将图像推送到hostaneme.cloudapp.net
失败了
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
有什么可以做的吗?我错过了什么吗?
UPDATE
通过添加具有以下内容的文件/etc/docker/daemon.json
解决了该问题
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
然后重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
在那个不安全的注册表hostname.cloudapp.net:500
工作之后。
(从问题中复制答案)
要添加不安全的docker注册表,请使用以下内容添加文件/etc/docker/daemon.json
:
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
然后重启docker。
创建/etc/docker/daemon.json文件并添加以下内容,然后在CentOS 7上重新启动docker解决了这个问题。
{
"insecure-registries" : [ "hostname.cloudapp.net:5000" ]
}
使用/etc/docker/daemon.json
文件的解决方案在Ubuntu上对我不起作用。
我可以通过在/etc/default/docker
文件中为Docker守护进程提供命令行选项,在Ubuntu上配置Docker不安全注册表,例如:
# /etc/default/docker
DOCKER_OPTS="--insecure-registry=a.example.com --insecure-registry=b.example.com"
可以使用相同的方法为docker映像和卷存储,默认DNS服务器等配置自定义目录。
现在,在Docker守护程序重新启动后(执行sudo service docker restart
之后),运行docker info
将显示:
Insecure Registries:
a.example.com
b.example.com
127.0.0.0/8