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

使用OCI Cloud Shell创建函数时Docker登录授权失败求助

解决Docker登录ord.ocir.io的Unauthorized错误

1. 修正用户名格式

你使用的/oracleidentitycloudservice/格式不完整,正确的用户名应为租户名/oracleidentitycloudservice/你的OCI用户名,示例命令:

docker login ord.ocir.io --username=your-tenancy-name/oracleidentitycloudservice/your-oci-username@domain.com

注:租户名是OCI控制台左上角显示的租户名称,而非OCID,不要添加多余斜杠。

2. 使用OCI认证令牌作为密码

不要使用OCI控制台登录密码,需生成个人认证令牌:

  • 登录OCI控制台,进入「个人资料设置」→「认证令牌」→ 生成新令牌,复制生成的令牌(仅显示一次)
  • 执行docker login ord.ocir.io,按提示输入完整格式的用户名,粘贴令牌作为密码

3. 验证OCI策略权限

确保你的用户/所属组拥有以下必要策略(需在根 compartment 或目标 compartment 下创建):

Allow group <你的组名> to manage repos in tenancy
Allow group <你的组名> to manage objects in tenancy

若使用单个用户,将group <你的组名>替换为user <你的用户名>即可。

4. 检查Cloud Shell的OCI配置

执行cat ~/.oci/config,确认文件中的用户、租户、区域信息正确,需保证区域与ord.ocir.io对应(ord为美国东部(芝加哥)区域)。

5. 重置Cloud Shell环境

点击Cloud Shell右上角的「重置环境」按钮,清除缓存后重新尝试登录操作。


OCI Cloud Shell使用Docker的前置要求

  • 无需本地Docker:Cloud Shell自带Docker运行环境,Windows本地无需安装Docker,所有操作在云端完成
  • OCIR权限:必须拥有管理OCI容器仓库(OCIR)的权限,即配置上述策略
  • 认证令牌:必须使用OCI个人认证令牌作为Docker登录密码,不能用控制台登录密码
  • 区域匹配:Docker登录的镜像仓库域名(如ord.ocir.io)需与操作的仓库所在区域一致
  • 网络访问:Cloud Shell默认可访问OCI内部服务,若租户有严格网络策略,需确保Cloud Shell能访问OCIR端点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:14:53