docker login 是什么
向镜像仓库认证,取得拉取与推送的权限。凭据默认保存在本机配置目录的配置文件里,也可以交给系统的凭据管理器保存。自动化环境里要把口令通过标准输入传入,避免出现在命令历史与进程列表中。
基本信息
| 语法 | docker login [仓库地址] [选项] |
|---|---|
| 默认目标 | 不写地址时登录公共镜像仓库 |
| 常用选项 | -u 指定账号,配合标准输入传入口令 |
| 凭据位置 | 本机配置目录的配置文件中,或由凭据助手保存 |
| 登出方式 | docker logout 清理本机保存的凭据 |
典型使用场景
- 部署机拉取私有镜像:先登录取得拉取权限,再由部署脚本执行拉取
- 发布流程推送镜像:构建环节登录后推送,结束后登出清理凭据
- 多仓库并行使用:不同环境登录不同仓库,按需切换
- 流水线集成:用专用机器人账号登录,权限范围限定到目标命名空间
- 排查权限问题:确认当前登录的是哪个账号,以及凭据是否过期
常用示例
常用示例
docker login # 交互式登录公共仓库
docker login registry.example.com # 登录私有仓库
echo "$REGISTRY_TOKEN" | docker login registry.example.com -u ci-bot --password-stdin # 自动化场景
docker info | grep -i registry # 查看仓库相关配置
docker logout registry.example.com # 登出并清理凭据凭据保存方式
| 方式 | 特点 | 适用环境 |
|---|---|---|
| 配置文件明文保存 | 简单直接,凭据可被本机其他程序读取 | 单机开发环境 |
| 系统凭据助手 | 凭据进系统密钥链,配置文件只留引用 | 桌面环境与多人共用机器 |
| 流水线注入 | 由流水线变量提供并即时登出 | 持续集成环境 |
| 专用机器人账号 | 权限限定在目标命名空间 | 需要审计与最小权限的生产环境 |
凭据管理建议
- 使用访问令牌而不是账号密码,令牌可随时吊销、权限可控
- 不要用命令行直接带口令的写法,它会被记入历史与进程信息
- 共享构建机上任务结束要登出,避免后续任务拿到别人的凭据
- 凭据助手在无图形界面的机器上可能不可用,需要明确退化为配置文件并加强文件权限
- 把凭据过期纳入监控,认证失效导致的部署失败往往在上线窗口才暴露
带口令的命令行参数会被记录在命令历史与进程列表里,任何能查看进程的人都能读到。自动化环境统一使用标准输入传入的方式。
配置目录里的凭据文件是明文或用简单编码保存的,属于敏感文件。共用机器上要限制文件权限,任务结束顺手登出。