/root是只读的,因此您无法运行 docker 命令,因为您无法存储任何身份验证方法生成的 docker 配置(或任何其他文件) 。
解决方案是以其他用户身份运行 docker 命令,以便正确保存 docker 配置。
以下是要遵循的步骤:
1) 在 Cloud SDK 不可用的系统上向 Container Registry 进行身份验证:
对于现有用户 ( MYUSER):
sudo -u MYUSER docker-credential-gcr configure-docker
使用新生成的用户 ( NEWUSER):
sudo useradd -m NEWUSER
sudo -u NEWUSER docker-credential-gcr configure-docker
该-u标志以指定用户身份执行命令。
docker-credential-gcr configure-docker将您的凭据存储在您的用户主目录中(替代docker login)。这样,您可以使用 Docker 的命令行工具直接与 Container Registry 进行交互。
2)创建 docker 组(如果不存在)并添加您的用户(需要NEWUSER或MYUSER没有运行 Docker 命令的权限):
sudo groupadd docker
sudo usermod -aG docker NEWUSER
3) 如果需要,重启 docker 守护进程:
sudo systemctl restart docker
最后,您可以访问放置在私有容器注册表中的 docker 镜像MYUSER或NEWUSER。如果你想运行 docker:
sudo -u MYUSER docker run ........
此处报告的命令在启动脚本中也可以正常工作,并且不需要密码。