使用 Container Registry 的 Docker Hub 镜像

Container Registry 可用作 Container Registry 用户经常请求的公共 Docker Hub 映像的镜像。这些映像具有以下特点:

  • 存储在 Google 拥有的代码库中。
  • 不易受 Docker Hub 服务中断影响。
  • 与 Google Cloud Platform 生态系统轻松集成。
  • 与 Docker Hub 注册表镜像保持同步。Container Registry 镜像将在 30 分钟或更短时间内捕获到 Docker Hub 中镜像映像的更改。

您可以将 Docker 守护进程配置为从 Container Registry 的 Docker Hub 注册表镜像中提取映像。将 Container Registry 配置为镜像后,如果您提取公共映像:

  • Docker 守护进程会检查 Container Registry 注册表并提取相关映像(如果存在)。您可以配置多个镜像,例如,您还可以拥有自己的本地镜像。Docker 守护进程将检查为映像配置的每个镜像,直到找到该映像为止。
  • 如果未找到该映像,Docker 守护进程将从 Docker Hub 上的规范代码库中提取该映像。
  • Container Registry 会将经常请求的映像添加到镜像中,以供未来请求使用。

Container Registry 的镜像可作为缓存使用,还可作为所请求映像的镜像。Container Registry 会定期移除不再被请求的映像。

从 Container Registry 的镜像提取映像

要将 Docker 守护进程配置为从 Container Registry 的镜像中提取映像,请按照以下说明操作。

CLI

  1. 使用以下三种方法之一配置守护进程:

    • 要在启动时自动配置 Docker 守护进程,请在 /etc/docker/daemon.json 中设置以下值

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • 在启动守护进程时,传入 Container Registry 主机名:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • 将以下行添加到 /etc/default/docker 文件中:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. 根据您的平台,运行以下某一命令来重新启动 Docker 守护进程:

    sudo restart docker
    sudo service docker stop && sudo service docker start
    docker-machine restart
    

Docker 界面

  1. 打开 Docker 的偏好设置菜单。
  2. 点击守护进程
  3. 点击高级。在 JSON 字段中,添加一个值为 http://mirror.gcr.ioregistry-mirrors 键:

    {
      "registry-mirrors" : [
        "http://mirror.gcr.io"
      ]
    }
    
  4. 点击应用并重新启动 (Apply & Restart)。

要确保镜像现已配置完毕,请运行以下命令:

docker system info

输出应包含 Registry Mirrors,并且应类似如下所示:

  Containers: 2
   Running: 0
   Paused: 0
   Stopped: 2
  Images: 2
  Server Version: 17.03.1-ce
  Storage Driver: overlay2
   Backing Filesystem: extfs
   Supports d_type: true
   Native Overlay Diff: true
  Logging Driver: json-file
  ...
  Registry Mirrors:
   http://mirror.gcr.io

现在,用于拉取 Docker Hub 映像的任何 docker pull 命令将首先对 Container Registry 的镜像发出请求。

查看镜像映像列表

要查看 Container Registry 镜像中的代码库列表,请运行以下命令:

gcloud container images list --repository=mirror.gcr.io

要查看其中一个代码库的内容,请使用以下命令:

gcloud container images list --repository=mirror.gcr.io/[REPO]

其中 [REPO] 是代码库。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Container Registry