当前位置: 首页 > 面试题库 >

带有镜像的Docker私有注册表

慕高格
2023-03-14
问题内容

我创建了两个Docker容器。第一个提供专用的Docker注册表,第二个提供官方Docker注册表的镜像:

docker run -d --name registry -v /local/path/to/registry:/registry -e SETTINGS_FLAVOR=local -e STORAGE_PATH=/registry -p 5000:5000 registry

docker run -d --name mirror -v /local/path/to/mirror:/registry -e STORAGE_PATH=/registry -e STANDALONE=false -e MIRROR_SOURCE=https:/registry-1.docker.io -e MIRROR_SOURCE_INDEX=https://index.docker.io -p 5555:5000 registry

现在,我想将两者结合起来。每当用户 提取 图像时,都应首先查询私有注册表,然后查询镜像。当图像被 推送时, 它们仅应被推送到私有注册表。

我不知道如何做到这一点。任何帮助表示赞赏。


问题答案:

您不能仅仅强制所有 docker push
命令推送到您的私有注册表。原因之一是您可以拥有任意数量的这些寄存器。您必须先通过标记图像来告诉docker将信息推送到何处(请参见下图)。

这是设置Docker主机以与运行中的私有注册表和本地镜像一起使用的方法。

客户设置

假设您在名为 dockerstore的 (可解析)主机上同时运行镜像注册表和私有注册表。在端口5555上镜像,在5000上注册。

然后在 客户端 计算机上,您应该将其他选项传递给docker daemon启动。在您的情况下:

  1. 添加--registry-mirror=http://dockerstore:5555以告诉守护程序更喜欢使用本地镜像,而不是dockerhub。资源
  2. 添加--insecure-registry dockerstore:5000无需进一步配置即可访问私有注册表。
  3. 重新启动docker daemon

使用镜子

拉动任何图像时,第一个源将是本地镜像。您可以通过运行docker pull进行确认,例如

docker pull debian

在输出中将显示一条消息称镜像已从镜像中拉出-dockerstore:5000

使用本地注册表

为了先推 送到私有注册表,您必须使用注册表的全名 标记 要推送 的映像
。确保标签的第一部分中有一个点或冒号,以告知docker该图像应推送到私有注册表。

Docker寻找“。” (域分隔符)或“:”(端口分隔符)以了解存储库名称的第一部分是位置而不是用户名。

例:

将30d39e59ffe2映像标记为 dockerstore:5000 / myapp:stable

docker tag 30d39e59ffe2 dockerstore:5000/myapp:stable

推送到私人注册表

docker push dockerstore:5000/myapp:stable

那你也可以拉

docker pull dockerstore:5000/myapp:stable


 类似资料:
  • 我正在尝试将一个图像推送到我的docker私有存储库: Docker告诉我: push引用存储库[living-registry.com:5000/busybox]Get https://living-registry.com:5000/v1/_ping:read tcp 195.83.122.16:39714->195.83.122.16:5000:read:对等体重置连接 这些命令正在Core

  • 问题内容: 我需要使用哪些CLI命令来检查我的私有Docker注册表中的映像是否比服务器上当前正在运行的映像新版本? 例如,我有一个运行的容器 我想知道它是否过时了。 问题答案: 布朗尼指出了@mbarthelemy和@amuino,他们使我步入正轨。由此,我提出了以下bash脚本,其他人可能会觉得有用。它只是检查注册表上的标记是否与当前正在执行的容器不同。

  • 问题内容: 我运行了一个私有Docker注册表,我想从存储库中删除除之外的所有图像。我不想删除整个存储库,仅删除其中的一些图像。该API文档不提一个办法做到这一点,但肯定这是可能的? 问题答案: 当前,您无法将注册表API用于该任务。它仅允许您删除存储库或特定标签。 通常,删除存储库意味着删除与此仓库关联的所有标签。 删除标签意味着删除图像和标签之间的关联。 以上所有都不删除单个图像。它们留在您的

  • 这节课给大家讲讲私有镜像仓库的使用。 Docker Hub 目前 Docker 官方维护了一个公共仓库Docker Hub,大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。如果你觉得拉取 Docker Hub 的镜像比较慢的话,我们可以配置一个镜像加速器:http://docker-cn.com/,当然国内大部分云厂商都提供了相应的加速器,简单配置即可。 注册 你可以在 htt

  • 问题内容: 我正在努力让Kubernetes与我的私有hub.docker.com注册表映像一起使用。 我正在使用kubectl版本: 和Mac OS X上的Vagrant 我按照此处给出的说明进行操作:https : //github.com/kubernetes/kubernetes/blob/release-1.1/docs/user- guide/images.md#pre-pulling

  • 我有一个小问题与我的docker注册表上openshift源安装。 我创建了一个docker注册表pod: 创建了一条路线: 创建了一个服务: Openshift的Master是在10.0.2.235上的,只有一个节点,现在我已经创建了一个spring boot应用程序,我使用maven插件docker来构建和推送映像。 当我在本地(主计算机上)运行maven push时,工作正常,但如果我在另一