Docker镜像标签删不掉?99%的人都忽略的5个关键细节(深度揭秘)

第一章:Docker镜像标签删除的常见误区与真相

在日常使用 Docker 的过程中,镜像标签(Tag)管理是运维和开发人员经常面对的任务。然而,许多用户误以为删除某个标签会直接移除对应的镜像数据,实际上,Docker 的镜像存储机制远比表面操作复杂。

误解:删除标签即删除镜像

当执行 docker rmi 镜像名:标签 时,许多人认为该镜像已被彻底清除。事实上,Docker 使用内容寻址的存储方式,多个标签可能指向同一个镜像层。仅删除标签并不会立即释放底层数据,除非没有任何标签或容器引用该镜像层。 例如:
# 给同一镜像添加多个标签
docker tag nginx:latest myapp:web
docker tag nginx:latest myapp:prod

# 删除其中一个标签
docker rmi myapp:web
# 输出:Untagged: myapp:web
# 但镜像数据仍被 nginx:latest 和 myapp:prod 引用,不会被删除

Docker 如何管理镜像与标签

Docker 将镜像层与标签分离管理。标签只是指向镜像的“指针”,而真正的镜像由唯一的摘要(Digest)标识。只有当一个镜像的所有标签都被移除,且没有运行中的容器依赖它时,该镜像才会成为“悬空镜像”(dangling image),并可被垃圾回收。 可通过以下命令查看悬空镜像:
# 列出所有悬空镜像
docker images --filter "dangling=true"

# 清理悬空镜像
docker image prune
  • 标签删除 ≠ 镜像删除
  • 镜像数据保留直到无任何引用
  • 定期清理悬空镜像可释放磁盘空间
操作是否删除数据说明
docker rmi myapp:latest否仅取消标签引用
镜像无任何标签且无容器使用是(标记为可回收)需执行 prune 才能释放空间

第二章:理解Docker镜像仓库中标签的底层机制

2.1 镜像ID、层与标签之间的映射关系解析

Docker镜像由多个只读层(Layer)组成,每一层对应一个唯一的SHA256哈希值,即层ID。镜像ID本质上是这些层堆叠后的最终校验和,代表整个镜像的快照状态。
标签与镜像的关联机制
标签(Tag)如nginx:latest并非指向镜像内容本身,而是指向一个可变的引用,该引用映射到具体的镜像ID。同一镜像可拥有多个标签,例如nginx:1.21与nginx:latest可能指向相同镜像ID。
层与镜像ID的映射关系
使用docker image inspect可查看镜像的详细结构:
{
  "Id": "sha256:abc123...",
  "RootFS": {
    "Type": "layers",
    "Layers": [
      "sha256:def456...",
      "sha256:ghi789..."
    ]
  }
}
上述JSON展示了镜像ID由多层哈希构成,每层对应一次构建指令(如RUN、COPY),实现内容寻址与缓存复用。
  • 镜像ID = 所有层ID的摘要组合
  • 标签可动态更新指向不同镜像ID
  • 删除标签不影响层存在,除非无任何引用

2.2 标签并非独立实体:从manifest到blob的链路追踪

在容器镜像分发体系中,标签(tag)本质上是对特定镜像版本的可读别名,并不直接存储数据。它通过指向一个manifest对象间接关联实际内容。
Manifest 的结构与作用
每个 manifest 包含元信息及一组 layer 摘要,这些摘要指向具体的 blob。例如:
{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
  "config": {
    "mediaType": "application/vnd.docker.container.image.v1+json",
    "size": 7023,
    "digest": "sha256:abc123..."
  },
  "layers": [
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 32654,
      "digest": "sha256:def456..."
    }
  ]
}
其中,digest 字段是 blob 的唯一标识,通过该哈希可在仓库中定位具体数据块。
链式引用关系
完整的访问路径为:tag → manifest → config blob + layer blobs。这一设计实现了内容寻址与版本可追溯性,确保镜像分发过程中的完整性验证。

2.3 本地缓存与远程仓库标签状态的差异剖析

在分布式版本控制系统中,本地缓存与远程仓库的标签状态可能因同步延迟而产生不一致。Git 标签作为指向特定提交的静态引用,其传播依赖显式推送或拉取操作。
标签同步机制
执行 git pull 默认不会获取远程新增标签,需使用:
git fetch --tags
该命令将远程所有轻量标签同步至本地缓存,确保视图一致性。
常见状态差异场景
  • 本地创建标签未推送:仅存在于开发者本地
  • 远程标签已删除但本地残留:造成历史引用污染
  • 团队成员推送新标签后未同步:导致构建环境版本错乱
状态对比示例
场景本地状态远程状态
新建未推送v1.5 存在v1.5 缺失
已同步v1.6 存在v1.6 存在

2.4 不可变性原则下标签重写的风险与后果

在容器化部署中,镜像的不可变性是保障环境一致性的重要原则。一旦镜像被推送至仓库并打上版本标签,任何对相同标签的重写行为都将破坏该原则。
标签重写的典型风险
  • 部署环境不一致:不同时间拉取同一标签可能获取不同内容
  • 回滚失效:历史标签被覆盖后无法准确还原到先前状态
  • CI/CD 流水线混乱:自动化流程依赖标签唯一性,重写将导致不可预测行为
代码示例:禁止标签重写配置(Docker Registry)
storage:
  delete:
    enabled: true
  maintenance:
    uploadpurging:
      enabled: false
  cache:
    blobdescriptor: inmemory
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
上述配置需结合外部策略工具实现标签防重写,例如通过 Harbor 的“不可变标签”策略限制 push 覆盖行为。参数 `delete.enabled` 控制镜像删除权限,但真正防止覆盖需依赖仓库级策略控制。

2.5 实验:模拟标签删除失败场景并分析原因

在分布式版本控制系统中,标签删除操作可能因权限不足或数据同步延迟而失败。为验证该问题,我们构建实验环境模拟异常场景。
实验步骤与配置
  • 搭建Git服务器并启用访问控制策略
  • 创建远程标签 v1.0.0 并推送至主分支
  • 使用低权限账户执行标签删除命令
错误复现命令
git tag -d v1.0.0
git push origin :refs/tags/v1.0.0
上述命令尝试删除本地及远程标签。当远程服务拒绝删除请求时,返回错误码 403,表明权限校验拦截了操作。
常见失败原因分析
原因说明
权限不足用户不具备删除标签的写权限
引用锁定标签被CI/CD流水线或钩子保护

第三章:正确操作远程镜像仓库的API实践

3.1 调用Registry HTTP API获取manifest信息

在与容器镜像仓库交互时,获取镜像的 manifest 是关键步骤之一。通过 Registry HTTP API,客户端可以请求特定镜像版本(标签)的 manifest 信息,用于解析其配置和层结构。
API 请求格式
调用标准如下:
GET /v2/<name>/manifests/<reference> HTTP/1.1
Host: registry-1.docker.io
Accept: application/vnd.docker.distribution.manifest.v2+json
其中 <name> 为镜像名称(如 library/nginx),<reference> 可为标签或 digest。请求头中的 Accept 指定返回 manifest 版本格式。
响应内容示例
成功响应返回 JSON 格式的 manifest,包含镜像层哈希、配置 blob digest 等信息,供后续拉取 layer 和 config 使用。状态码 404 表示镜像或标签不存在,401 则需先进行身份认证。

3.2 使用curl命令安全删除远程标签的完整流程

在持续集成与发布流程中,误推的标签需要被安全移除。使用 `curl` 直接与 Git 服务器 API 交互,可实现精准控制。
认证与API端点准备
首先确保拥有有效的访问令牌,并构造正确的 REST API 路径:
curl -X DELETE \
  -H "Authorization: Bearer <your_token>" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/owner/repo/git/refs/tags/tag_name
该请求向 GitHub API 发起 DELETE 请求,删除指定标签引用。`Authorization` 头携带 OAuth 令牌,确保操作权限。
响应验证与错误处理
  • HTTP 204 表示删除成功
  • 404 可能表示标签不存在
  • 403 意味着权限不足
建议结合 shell 脚本捕获状态码,防止误删或重复操作。

3.3 处理认证鉴权(Bearer Token)的实际案例

在现代Web应用中,使用Bearer Token进行身份验证是常见做法。通常,客户端在登录后获取JWT格式的Token,并在后续请求中将其放入Authorization头。
请求头配置示例

GET /api/user/profile HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
该请求头表明客户端携带了JWT作为身份凭证,服务端需解析并验证其有效性。
服务端验证逻辑
  • 提取Authorization头中的Token
  • 校验签名是否合法(如HMAC或RSA)
  • 检查Token是否过期(exp字段)
  • 确认用户权限范围(scope或role声明)
Go语言中间件实现

func AuthMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        tokenStr := r.Header.Get("Authorization")
        if !strings.HasPrefix(tokenStr, "Bearer ") {
            http.Error(w, "missing or invalid token", http.StatusUnauthorized)
            return
        }
        token := strings.TrimPrefix(tokenStr, "Bearer ")
        // 解析并验证JWT
        parsedToken, err := jwt.Parse(token, func(t *jwt.Token) (interface{}, error) {
            return []byte("secret-key"), nil
        })
        if err != nil || !parsedToken.Valid {
            http.Error(w, "invalid token", http.StatusUnauthorized)
            return
        }
        next.ServeHTTP(w, r)
    })
}
该中间件拦截请求,验证Bearer Token的有效性,确保只有通过认证的请求才能访问受保护资源。

第四章:主流容器仓库平台的操作指南与避坑策略

4.1 Docker Hub界面与API删除标签的双路径验证

在管理Docker镜像版本时,删除冗余标签是关键操作。Docker Hub提供两种方式:图形界面和REST API,二者需保持行为一致。
通过Web界面删除标签
登录Docker Hub后,进入仓库的“Tags”页面,找到目标标签并点击“Delete”按钮。系统会提示二次确认,防止误删。
使用API执行删除操作
可通过以下命令调用Docker Hub API:
curl -i -X DELETE \
  -H "Authorization: Bearer <access_token>" \
  https://hub.docker.com/v2/repositories/<username>/<repo_name>/tags/<tag>/
该请求需携带有效的JWT令牌,URL路径包含用户名、仓库名和待删标签。返回状态码204表示删除成功。
双路径一致性验证
为确保操作可重复且结果一致,建议在界面操作后通过API查询标签列表,确认其已移除。这种交叉验证机制提升了镜像管理的可靠性。

4.2 阿里云ACR中标签管理的权限与GC机制说明

在阿里云容器镜像服务(ACR)中,标签管理是镜像版本控制的核心环节。通过精细的权限策略,可实现对命名空间、仓库及镜像标签的分级访问控制。
权限模型设计
ACR支持基于RAM的角色访问控制,常见权限粒度包括:
  • ReadOnly:仅允许拉取镜像
  • PushNoDelete:可推送但不可删除标签
  • FullAccess:具备完整操作权限
GC回收机制
为优化存储成本,ACR提供垃圾回收(GC)策略。可通过控制台或API触发:
{
  "action": "CreateGCJob",
  "repoId": "repo-xxxxx",
  "gcPolicy": {
    "ruleType": "KeepLatestN",
    "retain": 5
  }
}
该配置表示仅保留每个仓库最新的5个镜像标签,其余无引用镜像层将被异步清理。GC执行期间不影响正常镜像拉取服务。

4.3 Harbor仓库中不可变标签策略的影响与应对

不可变标签的作用机制
Harbor通过启用不可变标签策略,防止关键镜像被意外覆盖或删除。该策略常用于生产环境,确保部署一致性。
配置示例与参数说明
{
  "repository": "library/nginx",
  "tag": "latest",
  "immutable": true
}
上述配置将library/nginx:latest设置为不可变。一旦启用,任何docker push操作若尝试覆盖该标签,Harbor将拒绝并返回403状态码。
运维影响与应对策略
  • 禁止使用:latest标签进行频繁推送,建议采用语义化版本(如v1.2.0)
  • CI/CD流水线需校验镜像标签是否符合命名规范
  • 临时调试可创建独立项目并关闭不可变策略

4.4 AWS ECR和GCP GCR的特殊处理逻辑对比

认证机制差异
AWS ECR 使用临时令牌(Temporary Credential)进行镜像拉取,需通过 `aws ecr get-login-password` 获取密码。而 GCP GCR 依赖 gcloud CLI 生成访问凭据,命令如下:
gcloud auth configure-docker REGION-docker.pkg.dev
该命令自动配置 Docker 客户端使用 GCP 凭据助手,无需手动管理令牌。
镜像命名与存储结构
  • AWS ECR:镜像 URI 格式为 ACCOUNT.dkr.ecr.REGION.amazonaws.com/REPO:TAG
  • GCP GCR:新版本使用 Artifact Registry,格式为 LOCATION-docker.pkg.dev/PROJECT/REPO/IMAGE
权限模型设计
平台权限系统细粒度控制
AWS ECRIAM 策略 + 资源策略支持仓库级访问控制
GCP GCRIAM 角色绑定支持 IAM 条件表达式

第五章:构建可持续维护的镜像版本管理体系

语义化版本与标签策略
在容器镜像管理中,采用语义化版本(SemVer)是确保可追溯性的基础。每次发布应打上格式为 v1.2.3 的标签,并配合 latest 仅用于开发测试。生产环境严禁使用浮动标签。
  • v1.0.0:初始稳定版本
  • v1.0.1:修复安全漏洞
  • v1.1.0:新增配置热加载功能
自动化构建与版本注入
CI/CD 流程中通过环境变量注入版本信息,确保镜像元数据一致性。以下为 GitHub Actions 片段:

jobs:
  build:
    steps:
      - name: Build with version
        run: |
          docker build \
            --build-arg BUILD_VERSION=${{ github.sha }} \
            --tag myapp:${{ github.sha }}
镜像清单与依赖审计
定期生成镜像内容清单,便于合规审计。使用 docker image inspect 提取元数据,并记录至中央仓库。
镜像标签构建时间基础镜像关键变更
v1.3.02025-03-10alpine:3.18升级 OpenSSL 至 3.0.13
v1.2.12025-02-25alpine:3.18修复路径遍历漏洞
生命周期管理与自动清理
设定镜像保留策略,避免仓库膨胀。例如:保留每个主版本最新的三个次版本,其余标记为过期并自动清理。

流程图:镜像版本生命周期

开发构建 → 扫描漏洞 → 推送私有仓库 → 标记版本 → 生产部署 → 过期评估 → 自动归档

Docker资源清理实战:安全删除镜像、容器与卷的标准化流程 Docker容器技术虽以轻量隔离著称,但其资源模型天然缺乏自动回收机制——镜像分层存储、容器可写层、Volume持久化设计,共同导致磁盘空间与I/O性能随时间持续劣化。理解dangling镜像(无标签且父层缺失的构建中间层)和dangling volume(未被任何容器挂载且未被VOLUME指令声明的卷)的本质,是实施精准清理的前提。这类资源不参与运行时依赖,却长期占用GB级空间,成为生产环境故障的隐性根因。本文聚焦工程落地,提供基于docker system df诊断、docker ps -a状态过滤、d 阅读详情

相关推荐

Ultralytics Docker镜像选型与YOLO训练部署实战指南

Docker容器化是深度学习模型开发与部署的关键基础设施,尤其在YOLO系列目标检测模型的训练、导出与推理全流程中,环境一致性、CUDA/cuDNN版本兼容性及GPU资源调度成为核心挑战。Ultralytics官方Docker镜像通过语义化标签(如8.3.0-cu121)实现了PyTorch、CUDA Toolkit与cuDNN的精准绑定,解决了conda环境冲突、pip依赖地狱和跨平台复现难等典型卡点。其技术价值在于提供开箱即用的生产就绪环境,支持从本地训练、ONNX/TensorRT模型导出,到Fast

weixin_33743703的博客 367

删除使用 docker tag 指令生成的 docker 镜像

使用 docker tag 生成的镜像,与原镜像 ID 相同,删除此镜像,需要输入镜像名:版本号,仅输入镜像名省略版本号不一定能删除成功

weixin_44112083的博客 5858

ARM设备Docker实战:从安装到多架构镜像构建完整指南

容器化技术通过将应用及其依赖打包成标准单元,实现了环境的一致性与高效部署。其核心原理在于利用操作系统级虚拟化,在共享内核上创建隔离的进程空间。这一技术为现代软件交付带来了巨大价值,尤其在持续集成、微服务架构和云原生场景中至关重要。随着边缘计算和物联网的兴起,资源受限的ARM架构设备(如树莓派)也成为重要的部署目标。然而,跨架构部署常面临镜像兼容性挑战,例如在树莓派3B+等设备上直接运行x86镜像会导致失败。本文聚焦于ARM平台,详解Docker引擎的安装配置、ARM镜像的获取方法,并重点介绍如何使用Buil

weixin_34008784的博客 325

docker 删除 tag为 none ,repository不为none 的镜像

删除 tag为none的镜像

sn5diphone6的博客 1440

AI工程必备的11个Docker镜像实战指南

Docker容器化是解决AI项目环境不一致、依赖冲突与跨平台部署难题的核心技术。其本质是通过镜像封装Python运行时、CUDA驱动、深度学习框架及向量数据库等关键组件,实现‘一次构建、处处运行’。技术价值在于保障模型训练、推理与服务化全链路的可复现性与生产稳定性。典型应用场景包括大模型本地调试(如Ollama)、GPU加速推理(PyTorch/TensorFlow)、RAG系统构建(Qdrant)、MLOps流程编排(MLflow/Airflow)等。本文聚焦AI工程落地中真正高频、高价值、经生产验证的1

weixin_30378623的博客 421

Docker Prune 深度解析:不是清理命令,而是存储策略

Docker prune 是 Docker 存储管理的核心机制,其本质并非简单删除文件,而是基于联合文件系统(UnionFS)和引用计数模型的资源回收策略。它作用于镜像层、容器可写层、卷、构建缓存及 builder 实例五大存储单元,每类资源的回收逻辑、依赖关系与不可逆风险各不相同。理解 prune 的真实作用域,是避免磁盘告警、CI 构建失败、数据丢失等生产事故的前提。尤其在 BuildKit 普及和多构建器共存的现代流水线中,`--filter` 参数已成为精准控制的关键能力,而 `docker sys

weixin_33907511的博客 309

docker如何实现重新打tag并删除原tag的镜像([仓库名: tag] 可以查询到指定id的镜像,同一个id镜像能有多个[仓库名: tag])(增加\删除镜像仓库:标签)

文章目录打tag删除镜像(或删除镜像的不同[仓库名:tag])删除方法一删除方法二我的示例:删除镜像的多余tag docker镜像id是唯一的,可以物理性的标明一个镜像,repository:tag可以有多个,但是也不会重复,也是唯一的。 打tag 要重新打tag的话,语法是: docker tag imageId repository:newTag 比如将这个centos:7重新打tag为centos7:base 此时仓库中有两个镜像,镜像id相同,只是多了一个tag标签,也就是多了一个引用。删除不

Dontla的博客 8990

OpenCode企业级部署:Docker镜像构建与K8s生产实践

代码编辑器正从个人工具演进为组织级开发基础设施,其核心已不再是语法高亮或调试能力,而是环境一致性、配置可审计性与交付可控性。基于VS Code内核的OpenCode,通过深度容器化实现开发环境的服务化封装,将GUI应用纳入Kubernetes编排体系,使每个编辑会话成为具备资源配额、健康探针和日志归集能力的标准化Pod。这种范式转变支撑了信创改造、等保三级合规与企业级RAG/Agent集成等关键需求,尤其在金融、政务等强监管场景中,Docker镜像构建、多阶段可信签名与StatefulSet状态管理构成落地

cqwmy840702的博客 504

docker 删除 tag 为 <none> 的镜像

请注意,在运行这些命令之前,请确保没有正在运行的容器依赖于这些镜像。如果有依赖关系,您需要先停止并删除这些容器。这个命令会删除所有未被使用的镜像,包括那些 tag 为。这个命令会删除所有未标记(tag 为。要删除所有 tag 为。

qq_44534541的博客 1260

Windows本地AI环境搭建:WSL2+Docker+Ollama运行Qwen2.5:14B

本地大模型运行环境是指在个人电脑上离线部署、完全可控的AI推理系统,其核心原理依赖于操作系统虚拟化(如WSL2)、容器化隔离(Docker)与轻量级模型服务框架(Ollama)的协同。技术价值在于保障数据隐私、规避API限流与网络依赖,并支持深度定制与性能调优。典型应用场景包括中文文档摘要、私有代码辅助、离线教学演示及企业敏感数据处理。本文聚焦Windows平台下基于WSL2+Docker+Ollama技术栈,实操部署Qwen2.5:14B开源大模型,详解量化选择(如q5_k_m)、上下文扩展(131K t

weixin_34067102的博客 430

NeurIPS‘25新研究!PINN+GNN强强联手,模型精度飙升50%!

物理图神经网络研究取得重大进展!UCLA团队提出的PhysGNN架构在NeurIPS'2025上引发关注,该模型成功融合PINN的物理约束优势与GNN的图结构处理能力,解决了工程仿真中的关键瓶颈。研究显示,PhysGNN在城市热网预测中误差降低42%,电网负荷模拟的物理规则违反率下降68%。同步解析的SyncTREE模型则创新性地将RC树物理特性融入GNN,实现毫秒级IC时序分析;HSPGNN模型通过嵌入偏微分方程,显著提升多变量时间序列填补精度。

m0_73122726的博客 1021

docker - 删除TAG为<none>的镜像

docker - 删除TAG为<none>的镜像

tangsiqi130的博客 1282

深入浅出DDR系列(二)--DDR工作原理

学习完了DDR的基本组成和硬件结构原理之后,从整体上了解了DDR的特性和静态图,包括原理、管脚图等。那么本章就要从动态的角度来分析时序结构,包括read/write的整个过程到数据返回发生了什么,其中包括以下内容 DDR是如何完成Read、Write 等的操作 DDR的基本命令 DDR的时序参数 DDR的性能分析 1. DRAM基本组成 对于DRAM,其主要由行和列组成,每一个bit中都是由类似右下图的类晶体管的结构组成,对于sdram的数据,可以通过控制column和row就可以访问sd

奇小葩 3万+

Agent服务如何实现Docker环境完全隔离?99%的人都忽略的3个关键细节

掌握Agent服务的Docker环境隔离核心方法,有效避免资源冲突与安全风险。详解网络隔离、存储卷独立及用户权限控制三大关键细节,适用于多租户部署与CI/CD场景,保障服务稳定与数据安全。值得收藏

BytePulse的博客 857

[SystemC]SystemC中的模块和程序

SystemC 中的层次结构是使用类 sc_module 创建的。sc_module 可以直接使用,也可以使用宏 SC_MODULE “隐藏”。上面的示例 SC_MODULE 创建了一个名为 nand2 的 sc_module 类对象。它的输出纯粹是输入值的函数。因此,模型可以使用最简单的 SystemC 进程,即 SC_METHOD。摘要:本节包含一个完整的简单设计,用于演示 SystemC 中模块和流程的使用。同样,重要的是要注意这不是典型的设计风格 - 但它很好而且易于理解。为什么要看模块和流程?

元直的博客 1867

学Simulink——基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制系统设计与仿真方法。SST作为智能电网关键设备,包含AC-DC整流、DC-DC隔离和DC-AC逆变三级变换器。针对级间耦合问题,提出了能量-功率协同控制策略,通过纵向解耦和横向联动实现稳定运行。详细演示了在Simulink中搭建三级主电路、设计协同控制器(含电网定向控制、功率前馈和虚拟惯性控制)的全过程,并通过负载突变测试验证了系统动态性能(直流母线电压波动<2%)。最后给出了工程部署建议,包括数字控制延时补偿、启动序列设计和代码自动生成

xiaoheshang_123的博客 204

Docker-LangChain模型更新全链路解析(99%开发者忽略的3个关键细节)

掌握Docker-LangChain的模型更新全链路方法,解决部署中版本不一致、依赖冲突与服务中断难题。覆盖CI/CD集成、镜像优化及热更新策略,提升AI应用交付效率。99%开发者忽略的关键细节深度解析,值得收藏。

IterLoom的博客 777

毕设-YOLOv8-OBB 实现自有数据集缺陷旋转检测全过程记录

这次项目让我深入理解了 YOLOv8-OBB 的原理和使用流程。步骤内容工具数据标注制作倾斜缺陷样本格式转换从 HBB 转换为 OBB模型训练使用 Ultralytics YOLOv8 OBBCLI 命令模型测试推理与结果可视化通过 OBB 模型,我的缺陷检测系统获得了更高的精度和鲁棒性。未来我打算继续优化数据增强方式,比如引入随机旋转、仿射变换等,让模型更适应不同角度的样本。

FJN110的博客 446

Docker自动发布流水线:从基础镜像到生产就绪的工程实践

容器化部署已成现代应用交付基石,其核心价值在于将不可控的手动操作转化为可定义、可验证、可回滚的自动化流程。本文围绕Docker镜像构建与自动发布两大关键技术环节,深入解析基础镜像分层设计原理(L0/L1/L2体系)、四段式哈希标签策略(git-commit+timestamp+ci-job+build-hash)以及生产就绪三道铁闸(Trivy漏洞扫描、健康端点探测、Gitleaks敏感信息检测)。内容覆盖Python/Node.js/Java等主流技术栈,适配单机服务器至云原生环境,强调安全合规、环境一致

weixin_30568591的博客 366

SAP S4 HANA:按单生产(MTO)场景中的COGS分割

本文介绍了SAP S/4HANA中提供的各种选项,以在销售订单/商品是按订单生产(以下称为MTO)生产流程中的成本对象时,在基于帐户的COPA环境中报告COGS分割信息。

adam915的博客 1191

【Win10/11】Windows电脑WiFi显示小地球/断网的解决方法 Windows WiFi小地球、网络连接中断、网络重置、无线网卡驱动、Win10/Win11网络修复

最近经常有粉丝留言问我,Windows 电脑突然连不上 WiFi,右下角网络图标显示成了“小地球 🌐”,或者干脆提示“未连接 - 没有可用的连接”。明明其他设备网络都正常,唯独自己的电脑断了。作为在互联网大厂混迹多年的前端程序员,我自己也碰到过这个问题。总结几种比较常见、亲测有效的解决方法,写出来供大家参考,希望能帮你快速恢复上网!问题原因推荐解决方法系统设置错乱使用网络重置功能驱动异常或冲突卸载后重启自动安装驱动驱动版本过旧手动更新网卡驱动实在不行考虑使用系统还原点或重装系统这几个方法中,

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3848

Docker生态系统五大核心组件深度解析

Docker并非单一工具,而是基于容器技术构建的标准化软件交付生态系统。其底层依托Linux内核的cgroups与namespaces实现进程隔离,通过镜像分层、内容寻址与UnionFS机制保障可复现性与高效分发;容器作为运行时实例,依赖Docker Engine(含daemon、API与CLI)统一调度,并由Registry完成镜像的可信存储与分发,再经Compose等编排工具实现多服务协同。该体系支撑CI/CD自动化、环境一致性与云原生演进,广泛应用于微服务部署、测试环境快速构建及混合云迁移等工程实践场

359

Java开源海外跨境电商购物商城源码,TikToK商城系统源码,外贸商城在线交易

最近很火的一款商城源码,朋友分享给我的,完整版,java开源代码,带有非常详细的搭建教程,文件都一个多G,喜欢的可以下载来研究研究!3、创建mall 数据库并导入数据,数据库名用户名为:mall 数据库密码保持为:XXKytcACPX3GbdsH。8、进入cd /data/deploy/mall-tool/目录执行./build.sh脚本。7、宝塔ssh进入cd /data/deploy/mall/ 执行./build.sh脚本。2、安装宝塔环境:安装 Redis、MySQL5.7、Ngin1.2。

百创科技 2821

Docker镜像容器卷清理:资源生命周期管理实战指南

Docker清理本质是面向容器化环境的资源生命周期管理,其核心在于理解镜像(只读模板)、容器(运行实例)与卷(独立持久化存储)三者的依赖关系与状态语义。基于分层存储原理,盲目执行docker system prune或volume rm极易破坏构建缓存、中断服务连接或误删关键数据。技术价值体现在保障CI/CD稳定性、避免磁盘空间误释放、维持网络与存储拓扑一致性。典型应用场景包括生产集群日常维护、K8s节点Docker引擎治理、以及多环境交付流水线资源回收。本文聚焦可验证、可回滚的清理决策逻辑,深度融合doc

weixin_30879169的博客 345

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Light GBM+SMOTE实现信用卡欺诈检测99.2% AUC实战指南

信用卡欺诈检测是典型的极不平衡分类问题,其核心挑战在于正样本稀疏(常低于0.2%)导致传统准确率失效。理解AUC-ROC与AUPRC指标原理,是构建高判别力模型的前提;Light GBM凭借leaf-wise树生长策略,在大规模失衡数据上兼顾速度、精度与内存效率;SMOTE则通过K近邻插值在特征空间安全增强少数类信号,但需严格控制K值与采样比例以防噪声引入。该技术组合不仅提升模型区分能力,更支撑欺诈召回率、业务阈值调优与可解释性落地,广泛应用于银行实时风控、支付反诈及保险理赔异常识别等场景。

weixin_33728268的博客 388

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

01-Docker入门与核心概念

要真正理解Docker,我们不能仅仅停留在"它是一个工具"的层面。任何一项技术的诞生都不是凭空而来的,它是对前人智慧的继承与发展,是对现实问题的回应。容器化技术同样如此——它有着超过四十年的技术积淀,经历了从chroot到LXC,再到Docker和Kubernetes的漫长演进。本章将带你穿越时光,梳理容器化技术的发展脉络,让你明白Docker为什么会出现在这个时代,以及它解决了前人没有解决好的哪些问题。软件交付方式的演进,本质上是人类对计算资源利用率和管理效率不断追求的过程。我们可以将这个过程分为三个主要

Na2SiO3Glue的博客 687

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 还在被Docker环境变量搞崩溃?,掌握这5级优先顺序,配置管理效率提升3倍
下一篇: Docker Compose --env-file深度剖析:3步构建安全可靠的配置管理体系
InitFlow
博客等级 码龄1年 145粉丝 2166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值