【问题标题】:How to pull images from Google Container Registry inside Docker Swarm如何从 Docker Swarm 中的 Google Container Registry 中提取图像
【发布时间】:2021-06-07 05:21:41
【问题描述】:

我有一个 2 节点的 swarm 集群,配置如下

我已经配置了Google Container Registry来推拉图片

在配置了 docker swarm 的主机/本地机器中,我可以使用以下命令轻松登录谷歌容器注册表并推送/拉取图像

$ gcloud auth print-access-token | sudo docker login -u oauth2accesstoken --password-stdin https://gcr.io
WARNING: Could not setup log file in /home/arush/.config/gcloud/logs, (PermissionError: [Errno 13] Permission denied: '/home/arush/.config/gcloud/logs/2021.03.09/15.17.13.106143.log')
WARNING! Your password will be stored unencrypted in /home/arush/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

我使用here提到的访问令牌方法登录

现在,如果我尝试使用以下命令在管理器节点上的 swarm 内创建服务,我会收到类似图像未找到的消息

$ docker service create --name app1 --with-registry-auth -p 5003:5000 app1

如何从 swarm 集群中登录 google 容器注册表并拉取镜像并创建服务

【问题讨论】:

    标签: docker google-cloud-platform docker-swarm docker-registry


    【解决方案1】:

    我可以看到您正在尝试在 Swarm 集群中创建服务,并且您希望从 Google Container Registry 中提取图像。

    请按照以下步骤操作:

    1. 连接到您的 Container Registry:(您可以使用 Access TokenJson File 这样做)。
    $ docker login -u oauth2accesstoken --password-stdin https://HOSTNAME
    

    $ docker login -u _json_key -p "$(cat keyfile.json)" https://HOSTNAME
    

    其中 HOSTNAME 是 gcr.io、us.gcr.io、eu.gcr.io 或 asia.gcr.io

    2) Pull 容器注册表中的映像

    $ docker pull HOSTNAME/PROJECT-ID/IMAGE:TAG
    
    

    3) 从您的 Swarm 节点使用拉取的图像创建一个服务

    $ docker service create --with-registry-auth --name app1 HOSTNAME/PROJECT-ID/IMAGE:TAG
    
    

    如果您是从管理节点创建服务,请注意管理节点不会自动与其他节点共享本地图像。

    因此,您将需要使用可从集群的所有节点访问的注册表。但是您不必使用外部公共远程存储库,您可以使用私有注册表映像在所有节点都可以访问的 swarm 上创建服务,如下所示:

    docker service create --name registry --publish 5000:5000 registry:2
    
    

    这样,所有节点都可以连接到“localhost:5000”上的注册表并拉取它们运行服务容器所需的镜像。

    然后从该图像创建服务:

    docker service create --name myservice localhost:5000/myimage
    
    

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 2017-02-24
      • 2019-03-05
      • 1970-01-01
      • 2018-10-31
      • 2017-11-09
      • 1970-01-01
      • 2017-07-02
      • 2018-10-06
      相关资源
      最近更新 更多