docker cp“客户端不拥有所需的权限。” 错误(gcp)

g_k*_*now 5 docker google-cloud-platform

我试图从 Google 云 sdk 环境下载项目文件,并从 Google 云支持获得 docker 命令。

\n

我遵循了这些指示:

\n

[![在此处输入图像描述][1]][1]

\n

我能够运行几乎所有命令,但 docker cp 命令遇到错误"A required privilege is not held by the client."以下是我所做的:

\n
    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>gcloud auth login\n    Your browser has been opened to visit:\n\n    https://accounts.google.com/o/oauth2/auth---\n\n\n    You are now logged in as [*@gmail.com].\n    Your current project is [nodejs-301100].  You can change this setting by running:\n    $ gcloud config set project PROJECT_ID\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>gcloud auth configure-docker\n    WARNING: Your config file at [C:\\Users\\*\\.docker\\config.json] contains these credential helper entries:\n\n    {\n      "credHelpers": {\n        "gcr.io": "gcloud",\n        "us.gcr.io": "gcloud",\n        "eu.gcr.io": "gcloud",\n        "asia.gcr.io": "gcloud",\n        "staging-k8s.gcr.io": "gcloud",\n        "marketplace.gcr.io": "gcloud"\n      }\n    }\n    Adding credentials for all GCR repositories.\n    WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are using.\n    gcloud credential helpers already registered correctly.\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker pull asia.gcr.io/nodejs 301100/appengine/default.20210108t204554:latest\n    latest: Pulling from nodejs-301100/appengine/default.20210108t204554\n    Digest: sha256:a1bf8c73e54a357b9aa3d251e73deb0f8ffba4eecef9c6767efa666f3781c600\n    Status: Image is up to date for asia.gcr.io/nodejs-301100/appengine/default.20210108t204554:latest\n    asia.gcr.io/nodejs-301100/appengine/default.20210108t204554:latest\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker images\n    REPOSITORY                                                    TAG       IMAGE ID       CREATED       SIZE\n    asia.gcr.io/nodejs-301100/appengine/default.20210108t204554   latest    b0c9100e95b4   4 weeks ago   741MB\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker run -d b0c9100e95b4\n    34600f7b8b20238c816a53c8dd08e19fcc0496628139d9c9251e7ad5683ef837\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker ps -a\n    CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS     NAMES\n    34600f7b8b20   b0c9100e95b4   "/bin/sh -c 'npm sta\xe2\x80\xa6"   41 seconds ago   Up 40 seconds  angry_einstein\n    77bcc0536ac9   b0c9100e95b4   "/bin/sh -c 'npm sta\xe2\x80\xa6"   20 minutes ago   Up 20 minutes             goofy_feistel\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker exec -it goofy_feistel pwd\n    /app\n\n    C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK>docker cp goofy_feistel:app/ google-cloud-sdk\n    symlink ..\\ejs\\bin\\cli.js C:\\Users\\*\\AppData\\Local\\Google\\Cloud SDK\\google-cloud sdk\\app\\node_modules\\.bin\\ejs: A required privilege is not held by the client.\n
Run Code Online (Sandbox Code Playgroud)\n

我应该怎么办?

\n

Woj*_*k_B 9

这是操作系统权限问题- Docker 无法访问某些文件;

\n
\n

修复客户端不持有所需的权限错误:错误 0x80070522 意味着您正在尝试在您不\xe2\x80\x99t 具有所需权限或特权的目录中复制或创建文件。通常,当您尝试复制、粘贴或修改 Windows 文件夹内的某些内容并且 Microsoft 不允许\xe2\x80\x99 不允许对 Windows 安装进行未经授权的访问时,您会收到此错误。甚至会提示用户错误 \xe2\x80\x9cA 客户端不持有所需权限错误\xe2\x80\x9d,因为这些文件只能由唯一的系统严格访问。

\n
\n

快速方法是以“管理员”身份打开命令提示符并再次运行命令。

\n

从类似的问题中可以找到一些线索:

\n\n

并在评论中链接的“解决方法” github 讨论@Mahboob中。

\n

正如约翰·汉利(John Hanley)建议的那样,这是执行此操作的正确方法:

\n
\n

在管理员提示符下运行该命令并不是一个好的解决方案,并且存在安全隐患。正确的解决方案是将用户添加到正确的组中,从而消除对管理员权限的要求

\n
\n

以下是如何执行此操作;这是另一个例子

\n