Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加GCP>;Docker config.json的容器注册表身份验证项?_Docker_Google Cloud Platform_Cloud_Google Container Registry - Fatal编程技术网

如何添加GCP>;Docker config.json的容器注册表身份验证项?

如何添加GCP>;Docker config.json的容器注册表身份验证项?,docker,google-cloud-platform,cloud,google-container-registry,Docker,Google Cloud Platform,Cloud,Google Container Registry,如何将(GCP->Container Registry)的服务帐户中的身份验证密钥添加到docker daemon.json 通常我会在docker daemon.json中写入url和user:pass-in base64,docker可以从私有注册表中执行pull操作 GCP容器注册表如何?我生成了一个json密钥,它可以正常工作 docker login -u _json_key --password-stdin https://gcr.io < credentials.json

如何将(GCP->Container Registry)的服务帐户中的身份验证密钥添加到docker daemon.json

通常我会在docker daemon.json中写入url和user:pass-in base64,docker可以从私有注册表中执行pull操作

GCP容器注册表如何?我生成了一个json密钥,它可以正常工作

docker login -u _json_key --password-stdin https://gcr.io < credentials.json
docker登录-u\u json\u密钥——密码标准https://gcr.io 
我可以登录到GCP容器注册表并从中提取图像,但如何将此键添加到docker daemon.json,以便docker自动从私有repo提取图像


谢谢。

您似乎已经选择了身份验证方法:

关于JSON密钥文件,请使用以下准则限制对容器映像的访问:

  • 创建仅用于与容器注册表交互的专用服务帐户\
  • 以服务帐户所需的最小访问量授予特定帐户\
  • 跟着
要创建仅用于容器注册表存储库的新服务帐户和服务帐户项,请执行以下操作:

  • 创建将与容器注册表交互的新服务帐户
    • 您可以在本地计算机或Cloud Shell中使用Cloud SDK运行以下命令
    a。创建服务帐户。用服务帐户的名称替换名称

    gcloud iam service-accounts create NAME
    
    gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role "roles/ROLE"
    
    b。将角色授予服务帐户。将项目ID替换为您的项目ID,将角色替换为服务帐户的相应云存储角色

    gcloud iam service-accounts create NAME
    
    gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" --role "roles/ROLE"
    
  • 获取将与容器注册表交互的服务帐户的密钥
  • 您可以在本地计算机上或在Cloud Shell中使用Cloud SDK运行以下命令。此页面上的说明使用文件名keyfile.json作为密钥文件

    gcloud iam service-accounts keys create keyfile.json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com
    
  • 验证服务帐户的配置是否正确。如果您使用的是计算引擎服务帐户,则必须正确配置权限和访问范围

  • 使用服务帐户密钥作为密码向Docker进行身份验证

  • 用户名是
    \u json\u key
    (不是您的服务帐户名)
    keyfile.json
    是您创建的服务帐户密钥

    例如:

    cat keyfile.json | docker login -u _json_key --password-stdin https://HOSTNAME
    
    其中主机名为
    gcr.io
    us.gcr.io
    eu.gcr.io
    ,或
    asia.gcr.io

    或者,对于不支持密码stdin的较旧Docker客户端:

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

    其中主机名是
    gcr.io
    us.gcr.io
    eu.gcr.io
    ,或
    asia.gcr.io
    ,谢谢您的解释,但您的回答不是我想要的。好的,我会换一种方式问。如何为GoogleCloudRegistry(而不是工件注册表)创建登录名和密码,以便以这种方式将它们写入配置?谢谢工件注册和容器注册是两种不同的服务。我问的是关于容器注册的问题,也许答案就是你在我回答的第二个链接中看到的:``gcloud auth login gcloud auth activate service account--key file=key-file``我理解你的意思。但我不想为GCP安装额外的gcloud控制台。我在文档中没有看到任何要安装的内容,总之,遗憾的是,它对您没有帮助。