- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
DigitalOcean 的Container Registry为您在云中提供了一个私有空间来存储和分发您的 Docker 映像。除了提供图像存储库外,该服务还集成到 DigitalOcean 的其他服务中。您可以将存储的映像部署到App Platform并将它们与托管 Kubernetes集群一起使用。
Container Registry 是 Docker Hub 的竞争对手,可让您将 Docker 映像保存在 DigitalOcean 帐户中。当您将使用其他 DigitalOcean 功能访问这些图像时,这是理想的选择。您无需为应用的私有映像设置单独的付费 Docker Hub 帐户。
Container Registry 中保存的数据在多个 DigitalOcean 数据中心区域之间自动进行负载平衡。当您启动容器并将它们拉到您的机器上时,这会加速图像检索。与其他 DigitalOcean 功能不同,您无法手动选择 Container Registry 的数据中心。
DigitalOcean 的注册表实现符合 OCI,因此您可以使用熟悉的生态系统工具与之交互。将注册表的凭据添加到 CLI 后,类似docker push的命令将“正常工作”。docker pull同样,Kubernetes 等编排器在您的注册表中引用图像也不会遇到问题。
Container Registry 是免费提供的,但免费计划确实有一些严重的限制。您将获得一个映像存储库(顶级映像名称)、500MB 存储空间和 500MB 出站数据传输上限——足以评估服务,但可能不适合长期使用。每月 5 美元的基本计划为您提供五个存储库和 5GB,而 20 美元/专业版则提供无限存储库和 100GB 存储空间。存储超额按 0.02 美元/GB 计费。
通过登录 DigitalOcean 控制面板并单击左侧栏中的“容器注册表”链接来创建注册表。为您的新注册表命名并选择您的存储计划。该名称必须在每个 DigitalOcean 注册表中都是全局唯一的,因此您的首选可能不可用。它最多需要包含 63 个字符,包括字母、数字和连字符。
创建新注册表可能需要几秒钟。该过程完成后,您将被带到注册表的仪表板屏幕。
下一步是将 Docker CLI 连接到注册表。您需要向 Docker 提供您的注册表凭据,以便它可以使用您的帐户推送和拉取图像。有三种不同的方法可以实现这一目标。
DigitalOcean 的官方命令行实用程序 Doctl 包含一个便捷脚本,可将您的 Docker 客户端配置为与您的 Container Registry 一起使用。
您需要安装 Doctl 并对您的 DigitalOcean 帐户进行身份验证才能使用此方法。运行以下命令来设置集成:
doctl registry login
DigitalOcean API 令牌可用于向 Container Registries 进行身份验证。通过单击 DigitalOcean 帐户左侧边栏底部的“API”链接生成令牌。单击“生成新令牌”,为其命名,然后在以下弹出窗口中按“生成令牌”。
将显示令牌值。记下这一点,因为您以后将无法检索它。现在返回您的 CLI 并使用docker login命令连接到您的注册表:
docker login registry.digitalocean.com
系统将提示您提供用户名和密码。将您生成的 API 令牌的值用于这两个字段。Docker 现在将能够与属于您帐户的 DigitalOcean 注册表进行交互。
如果您不想生成 API 密钥或使用 Doctl,请前往 Container Registry 仪表板页面并单击右上角的蓝色“操作”按钮。从菜单中选择“下载 Docker 凭据”。
此文件与 Docker 兼容config.json,其中包含注册表的凭据。您可以将其与主~/.docker/config.json文件合并,也可以将–config标志与docker命令一起使用:
docker --config ~/downloaded-config.json pull registry.digitalocean.com/<your-registry-name>/example-image:latest
正确配置 Docker 后,您现在可以使用 CLI 通过 Container Registry 推送和拉取镜像。图像必须以以下格式标记:
registry.digitalocean.com/<your-registry-name>/example-image:latest
这是一个将现有图像的副本推送到注册表的简单示例:
docker pull httpd:latest
docker tag httpd:latest registry.digitalocean.com/<your-registry-name>/httpd:latest
docker push registry.digitalocean.com/<your-registry-name>/httpd:latest
前往 DigitalOcean 控制面板中的注册表仪表板。您新推送的图像应显示在您的注册表中。您可以单击图像以查看可用的标签。通过单击最右侧的三个点图标并从菜单中进行选择,删除特定标签或可用于图像的所有标签。
从注册表中删除图像可能会留下多余的层,这些层不再被任何剩余的清单使用。这些层仍将计入您的存储成本。
DigitalOcean 提供了一个垃圾收集工具来删除孤立的层和清单。当垃圾收集可以释放存储空间时,您会在注册表的仪表板屏幕上看到一个磁贴。单击“清空垃圾”开始该过程。
您将看到一个弹出对话框,让您选择是否在清理过程中删除未标记的清单。这些是没有分配标签的有效图像,因此只能通过其完整 ID 引用它们,例如registry.digitalocean.com//example-image:a1bc23. 除非您有意保留它们,否则通常需要删除这些清单。
垃圾收集将您的注册表置于只读状态,直到所有未使用的层都被删除。在清理期间新的推送将被拒绝。收集在现有写入完成之前不会开始,因此在您启动该过程后可能会有一点延迟。进度显示在控制面板中注册表的仪表板页面上。
DigitalOcean 不提供自动垃圾收集。但是,可以使用Doctl和 DigitalOcean API运行该过程,这样您就可以编写自己的脚本并使用cron.
DigitalOcean 的 Container Registry 为您提供了一种方便的方式来存储 Docker 映像。您使用现有的 DigitalOcean API 令牌对注册表进行身份验证。您应该记住,API 令牌可以完全访问您的帐户——它们不仅限于注册表访问。
您是否应该使用 Container Registry 来支持 Docker Hub 取决于您将如何处理映像。如果您要将它们部署到 DigitalOcean,则将图像与基础架构放在一起是有意义的,从而最大限度地提高性能。不过,Docker Hub 在其他领域也有好处,例如可以快速标记安全问题的自动映像重建和漏洞扫描。DigitalOcean 的服务没有这些,而是专注于纯粹简单的图像存储。
我试图让我的 jQuery 脚本从单击的链接中提取 url,然后将其插入到我的视频标签中。有什么建议吗? 我试过拼接我从 .html() 中得到的内容,但引号总是搞砸了。
我遇到了 docker 的问题。 场景是这样的:我们使用Codebuild+Packer+docker创建AMI,用于deploy。在这一步中,我们从 Artifactory 中提取图像,并且除了提取
我目前正在学习 RxJS。 在文档中,我找到了这个数组。 我尝试在谷歌上搜索“pull and push javascript”,但我什至不知道如何调用这些实体/概念。我不明白那是什么意思?我假设 S
Title 在小屏幕上,我首先需要标题,然后是文本字段,但在中等以上的屏幕上,我需要相反的方式 - 我已经尝试过推和拉,但它们无法工作 - 有什么想法吗? 最佳答案 根据 Swa
zmq 的某些部分未以可预测的方式运行。 我正在使用 VS2013 和 zmq 3.2.4。为了不在我的 pubsub 框架中“丢失”消息 [旁白:我认为这是一个设计缺陷。我应该能够首先启动我的订阅者
我正在编写一个使用嵌套 Bootstrap 列的页面。我正在使用推/拉让列在移动设备上切换位置,而且效果很好。但是,在桌面上我遇到了一些奇怪的间距问题。嵌套列偏移到父列的右侧。 我设置了一个 fidd
在拉取一些 docker 镜像(但不是全部)时出现此错误: failed to register layer: Error processing tar file(exit status 1): op
我创建了一个 Kubernetes 集群,并为每个节点安装了 docker。 当我尝试使用 docker push local_registry_addr:port/image_id 将图像拉取或推送
没有明确地推/拉单个书签,书签何时从 repo 复制/更新到 repo? 在我对两个本地存储库的测试中,我无法推断出一致的行为。有时从 A 到 B 或 B 到 A 的推/拉会复制/更新书签,有时不会。
在 Bootstrap 3 文档中,他们给出了以下使用 push 和 pull 类更改列顺序 (http://getbootstrap.com/css/#grid-column-ordering) 的
从这个问题开始Three column Bootstrap layout with left sidebar at bottom我了解了 Bootstrap 列推拉。 下面的代码片段几乎可以得到我想要
许多 Repo 函数的签名包括 **kwargs,其中文档说,您可以将参数传递给底层包装的 git 命令。但是,*args 没有位置。为了传递类似标志的参数,如 --all。我原以为它们会像 my_r
如果您将大文件推送/拉到设备上,这真的很烦人,现在无法知道它有多远。是否可以运行 adb push 或 adb pull 并使用“bar”实用程序获取进度条? 这里的主要问题是我认为 adb 需要两个
当我尝试使用 Gitkrakent 向/从 Heroku 推/拉时,GitKraken 告诉我: "Please log in to continue" 请求的“用户/登录”是什么? (我个人 Her
我在 docker 容器中有一个 Jenkins 2.150.1。要安装这个 Jenkins,我只需使用 jenkinsci/blueocean:1.9.0图片。 我创建了一个管道,然后尝试使用我的
我想使用 Jenkins 做下一步: 1- docker pull 2- docker run -i -t 我已经在jenkins上安装了docker插件,但是这可行吗? docker plugi
如果我正在处理一些我不想提交的文件,我只需保存它们。然后我有其他文件想要推送到服务器,但是如果其他人对存储库进行了更改,并且我将它们拉下来,它会要求我 merge 或 rebase ..但是这些选项中
无论出于何种原因,我在 FB 上共享链接时尝试使用的图像都无法加载。给出的确切错误是: 提供了og:image,无法下载。发生这种情况的原因有多种,例如您的服务器使用不受支持的内容编码。爬虫接受 de
今天我买了三星 Galaxy Note 3,它配备了 Android 4.3。由于它太新了,我找不到根植我设备的方法,所以我尝试使用 adb 连接……我失败了。 所以,我用了这个 D:\android
我尝试通过 airflow cli test 命令测试 2 个任务` 第一个任务运行,自动将最后一个控制台推送到 xcom,我按预期在 Airflow GUI 中看到了值 some value 当我通
我是一名优秀的程序员,十分优秀!