我已经设置了一个 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
。
但有两点需要注意:
首先轮询注册镜像,然后轮询上游 docker hub 以查找任何故障镜像。如果镜像响应的是坏的或旧的镜像,docker 引擎将很乐意使用它。
没有存储库前缀的镜像来自docker库,将搜索镜像
mydockerregistry.com/library/hellodocker
而不是mydockerregistry.com/hellodocker
。因此您需要:docker tag hellodocker:latest mydockerregistry.com/library/hellodocker:latest docker push mydockerregistry.com/library/hellodocker:latest
我有一个关于镜像和缓存的演示文稿,您可能会发现它很有用: