You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson设备从GCP Artifact Registry拉取Docker镜像认证失败问题

Jetson设备无法从Google Artifact Registry拉取Docker镜像

问题背景

普通Ubuntu服务器能正常从Google Artifact Registry拉取Docker镜像,但**Jetson设备(ARM架构、Python 3.8)**始终失败。已激活的服务账号配置了OWNER和Registry Admin权限,gcloud auth list可正常显示该账号。

已执行操作

# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装并配置gcloud
sudo apt-get -y install apt-transport-https ca-certificates gnupg curl sudo
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get -y install google-cloud-cli
gcloud auth activate-service-account --key-file="./sa.json"

# 配置Docker与Artifact Registry的认证
gcloud auth configure-docker europe-docker.pkg.dev

拉取命令及错误提示

执行拉取命令:

docker pull europe-docker.pkg.dev/PROJECT/docker/cam-recorder-qa:277dacbdf2c5a105b7e86c771bccb4036e943198

返回错误:

Error response from daemon: Head "https://europe-docker.pkg.dev/v2/PROJECT/docker/cam-recorder-qa/manifests/277dacbdf2c5a105b7e86c771bccb4036e943198": denied: Unauthenticated request. Unauthenticated requests do not have permission "artifactregistry.repositories.downloadArtifacts" on resource "projects/PROJECT/locations/europe/repositories/docker" (or it may not exist)

解决方法

1. 检查Docker认证文件的权限与位置

Jetson上执行gcloud auth configure-docker后,认证配置默认存在当前用户的~/.docker/config.json中,但如果用sudo执行docker pull,Docker会读取/root/.docker/config.json,导致认证失效。

  • 先确认当前用户的配置文件是否包含Artifact Registry的认证条目:

    cat ~/.docker/config.json
    

    需确保有"europe-docker.pkg.dev": "gcloud"这类配置。

  • 如果用sudo拉取,把认证文件复制到root目录:

    sudo cp ~/.docker/config.json /root/.docker/
    sudo chown root:root /root/.docker/config.json
    

2. 手动生成Docker认证令牌

ARM架构下gcloud自动配置可能存在兼容问题,可手动生成认证令牌并登录:

gcloud auth print-access-token | sudo docker login -u oauth2accesstoken --password-stdin europe-docker.pkg.dev

执行完成后再次尝试拉取镜像。

3. 更新gcloud到最新版本

Jetson的ARM架构可能适配旧版gcloud存在问题,更新后重新配置:

sudo gcloud components update
gcloud auth configure-docker europe-docker.pkg.dev

4. 确认镜像支持ARM架构

虽然报错是认证问题,但也可排查镜像是否适配Jetson的ARM64架构:

gcloud artifacts docker images describe europe-docker.pkg.dev/PROJECT/docker/cam-recorder-qa:277dacbdf2c5a105b7e86c771bccb4036e943198 --format='value(image_summary.mediatypes)'

若输出中没有对应ARM64的manifest类型,说明镜像不兼容,但这类情况通常不会报认证错误,可作为兜底排查项。


内容的提问来源于stack exchange,提问作者RaShe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:13:10