如何为 docker 注册表允许多个“--insecure-registry”

How to allow multiple '--insecure-registry' for docker registry

众所周知,我们可以在 /etc/default/docker 配置文件中添加一个 --insecure-registry 以允许不安全的注册表,如下所示:

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry myregistry:5000"

我的问题是:是否支持添加多个 --insecure-registry 因为我们需要与多个注册管理机构通信?

您可以通过排列它们来指定多个不安全的注册表:

--insecure-registry IP1:PORT --insecure-registry IP2:PORT --insecure-registry IP3:PORT

来源:https://github.com/docker/docker/issues/9026

Docker 17.xx +

  1. 编辑daemon.json文件,其默认位置是Linux上的/etc/docker/daemon.json或Windows服务器[=18上的C:\ProgramData\docker\config\daemon.json =]

    If the daemon.json file does not exist, create it.

    {
          "insecure-registries": ["myregistry:5000", "anotherregistry:5000"]
    }
    
  2. 重新启动 Docker 以使更改生效。在 Ubuntu 中会是这样的:

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    

在官方文档页面中查找更多详细信息https://docs.docker.com/registry/insecure/

如果您在 RHEL、CentOS、Fedora 等平台上使用 docker

(您可以在 Ubuntu 中配置相同的内容,但它位于另一个位置)

你可以在docker服务中添加下一行 /etc/sysconfig/docker

INSECURE_REGISTRY='--insecure-registry IP1:PORT1 --insecure-registry IP2:PORT2'

保存文件 并重新启动 docker

$ systemctl restart docker

更新 /etc/containers/registries.conf

中的以下行
# Registries that do not use TLS when pulling images or uses self-signed
# certificates.
[registries.insecure]
registries = ['myregistry:5000','myregistry2:5000']

并重启服务

systemctl restart docker