我可以配置 docker 以便它在我的注册表中查找图像而不指定注册表名称吗?

我可以配置 docker 以便它在我的注册表中查找图像而不指定注册表名称吗?

我已经设置了一个 docker 注册表,并将一个项目推送到hellodocker其中。在另一台机器上,我已登录到我的注册表,但当我尝试拉取时,我必须使用全名:mydockerregistry.com/hellodocker

有没有办法配置docker以将我的注册表作为可以从中下载未找到图像的地方?

答案1

我不建议将其用于此目的,但您可以使用注册表镜像设置来配置 docker 引擎。从 CLI 中dockerd,这就是标志--registry-mirror。或者在 /etc/docker/daemon.json 中,您可以设置:

{ "registry-mirrors": ["https://mydockerregistry.com"] }

配置 daemon.json 时,您需要在应用更改后重新加载 docker 引擎。在桌面 GUI 中,这是屏幕上的一个选项。在 Linux 中,您将运行systemctl reload docker

但有两点需要注意:

  1. 首先轮询注册镜像,然后轮询上游 docker hub 以查找任何故障镜像。如果镜像响应的是坏的或旧的镜像,docker 引擎将很乐意使用它。

  2. 没有存储库前缀的镜像来自docker库,将搜索镜像mydockerregistry.com/library/hellodocker而不是mydockerregistry.com/hellodocker。因此您需要:

    docker tag hellodocker:latest mydockerregistry.com/library/hellodocker:latest
    docker push mydockerregistry.com/library/hellodocker:latest
    

我有一个关于镜像和缓存的演示文稿,您可能会发现它很有用:

相关内容