首页/云/Docker 容器速查/docker run --label 打标签
基础命令50 条

docker run --label 打标签

给容器附加 key=value 元数据:标记环境、团队、版本,配合 docker ps --filter label= 可以按维度筛选与统计。

Docker 容器速查云更新于 2026-10-13

--label 打标签是什么

docker run --label 给容器附加 key=value 形式的元数据标签。标签不影响容器运行行为,但能被 docker ps --filter label= 筛选,也能在输出模板里读取。多项目共用一台宿主时,统一前缀的标签是管理的基础。

基本信息

用途为容器附加元数据标签
语法-l KEY=VALUE 或 --label KEY=VALUE,可重复使用
筛选docker ps --filter label=env=dev
读取docker inspect -f '{{.Config.Labels}}' 或 ps 模板 {{.Label "key"}}
Compose 自带标签com.docker.compose.project、.service、.config-hash

典型使用场景

  • 按环境或团队筛选容器:清理、巡检、统计时先圈定范围
  • 标记版本与发布信息,出问题时快速确认实例跑的是哪个版本
  • 给清理脚本提供保护条件:--filter label!=keep 跳过需要保留的容器
  • 多项目共用宿主时按项目或负责人分组核对资源占用
  • 配合监控与资产台账做分组统计,减少手工维护的清单
  • 为容器打上对应的工单或变更编号,事后审计时容易追溯
  • 给自动化脚本加保护标记,清理与重启时用 keep 之类的标签把关键容器排除在外

示例

示例
docker run -d --name web \
  --label env=dev --label owner=ops --label version=1.4.2 \
  nginx:1.27-alpine
docker ps --filter label=env=dev --format '{{.Names}}\t{{.Label "owner"}}'
docker inspect -f '{{.Config.Labels}}' web
docker ps -a --filter label!=keep      # 清理时把要保留的排除掉

常见标签键与用途

标签键示例值用途
envdev、staging、prod按环境筛选与批量操作
ownerops、team-a责任归属与成本分摊
version1.4.2 或提交号确认实例运行的版本
keeptrue给清理脚本做保护标记
com.docker.compose.*由 Compose 自动生成识别受管理的容器
标签只是元数据,不参与调度与资源限制,也不构成任何访问控制,别把它当成权限或配额手段。
键值里避免空格与特殊字符:过滤表达式按字面匹配,写错不会报错,只会筛不到结果,巡检脚本里尤其容易踩。
Compose 启动的容器自带 com.docker.compose 系列标签,手工容器用相近的前缀风格能让两边的筛选逻辑统一。
标签在容器创建时就固定下来,运行期改标签要重新创建容器;写在 docker run 上的标签只作用于容器,与镜像自身的标签是两套机制。

易错点

  • 标签键大小写或拼写不一致会导致筛选失败,脚本静默拿到空列表,还以为没有匹配的容器
  • 把标签当安全边界:任何能操作 Docker 的人都能改标签,用它做权限判断等于没有防护
  • 只在命令行加过标签的容器,重建后标签就丢了;长期需要就写进 compose 的 labels 字段
  • 把敏感信息写进标签值,会出现在 docker inspect 输出里,截图与日志中都可能外泄

数据来源与参考

  • Docker 官方 CLI 参考:docker run --label(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌