如何使用 artifactory 镜像 dockerhub

spu*_*der 6 artifactory docker dockerhub

由于 dockerhub 已开始限制非付费帐户的下载,我经常收到此错误

ERROR: Preparation failed: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit (executor_docker.go:188:15s)
Run Code Online (Sandbox Code Playgroud)

https://docs.docker.com/docker-hub/download-rate-limit/

我有一个神器服务器,如何设置 docker 以首先从神器缓存/镜像?

spu*_*der 5

首先设置一个指向 docker hub 的神器遥控器 https://registry-1.docker.io

在此处输入图片说明

然后重新配置所有 docker 代理以使用 registry_mirror。有多种方法可以做到这一点,但添加--registry-mirror到 docker 启动选项很可能是最简单的。有关更多信息,请参阅 docker 文档

https://docs.docker.com/registry/recipes/mirror/

方法一

将 --registry-mirror 添加到 /etc/default/docker 中的 OPTIONS 变量

cat /etc/default/docker
OPTIONS=" -H unix:///var/run/docker.sock --ip-forward=true --iptables=true --ip-masq=true --registry-mirror=https://docker.artifactory.example.com -G docker"

Run Code Online (Sandbox Code Playgroud)

方法二

编辑 /etc/docker/registry/config.yml

proxy:
  remoteurl: https://registry-1.docker.io
  username: [username]
  password: [password]
Run Code Online (Sandbox Code Playgroud)

方法三

如果使用 puppet,则配置如下所示

  class { '::docker':
    use_upstream_package_source => false,
    manage_package              => false,
    registry_mirror             => 'https://docker.artifactory.example.com',
  }
Run Code Online (Sandbox Code Playgroud)


小智 5

避免遇到 Dockerhub 速率限制的步骤:

  1. 如果您还没有 Dockerhub 免费帐户,请注册一个。Dockerhub 支持每 6 小时最多 200 个凭证拉取,而匿名拉取则为每 6 小时 100 个。

  2. 通过设置一个到 Dockerhub 的远程仓库和一个本地仓库来推送和拉取不在 dockerhub 上的镜像,使用 Artifactory 作为 Dockerhub 之间的缓存。

  3. 避免将 Dockerhub 用于个人镜像。仅在必要时拉取官方镜像。

  4. 使用虚拟仓库 ex 的 docker repo 路径设置您的 docker 客户端以始终通过 Artifactory:

    docker.artifactory.example.com/docker-virtual/myimage:1.0.0

  5. 通过使用其中包含虚拟存储库的路径,以相同的方式拉取官方镜像。

    docker.artifactory.example.com/docker-virtual/ubuntu:latest

  6. 通过使用分析监控您的 Dockerhub 速率限制 JFrog 提供了与SplunkElasticPrometheus 的集成,以监控您的 dockerhub 拉取请求和缓存命中率的滚动 6 小时窗口。