Logo 📚 Digital Library

Docker 镜像重命名

清理旧镜像与无用容器#

长期使用会积累无用镜像、悬空卷和停止容器,可定期执行清理:

# 删除未使用镜像、容器、网络和卷
docker system prune -a

或仅删除悬空镜像:

docker image prune

Docker 镜像清理与重命名(去掉代理地址)#

当从自建镜像源拉取的镜像名带有代理前缀时,例如:

[ding@ArchLinux hdy]$ docker images | grep nginx
hub.850899.xyz/library/nginx   latest   07ccdb783875   7 days ago   160MB
nginx                          latest   a830707172e8   6 months ago 192MB

可以通过以下步骤去掉地址前缀。

1️⃣ 重新打标签(Retag)#

docker tag hub.850899.xyz/library/nginx:latest nginx:latest

这会创建一个新的标签 nginx:latest,指向同一镜像 ID。


2️⃣ 删除旧标签#

确认后删除旧镜像名:

docker rmi hub.850899.xyz/library/nginx:latest

如果提示该镜像被容器占用,可先停止或重启容器。


3️⃣ 验证结果#

执行:

docker images | grep nginx

输出:

nginx   latest   07ccdb783875   7 days ago   160MB

说明已经成功去掉代理前缀。


客户端应用与优化建议#

1️⃣ 加速国内拉取

  • 本地 Docker 可同时配置多个代理源:

    {
      "registry-mirrors": [
        "https://hub.850899.xyz",
        "https://docker.m.daocloud.io",
        "https://mirror.ccs.tencentyun.com"
      ]
    }

2️⃣ 保证缓存稳定

  • 若代理节点位于国外,建议启用 Nginx 缓存目录:

    proxy_cache_path /var/cache/docker levels=1:2 keys_zone=docker_cache:10m max_size=10g inactive=7d;
    location /v2/ {
        proxy_pass http://127.0.0.1:5000;
        proxy_cache docker_cache;
        proxy_cache_valid 200 302 10m;
    }

3️⃣ 日志与清理

  • 代理容器日志查看:

    docker logs -f docker-proxy
  • 定期清理缓存目录,保持空间可用。

总结#

操作命令
启动代理docker run -d -p 5000:5000 registry:2
设置客户端代理修改 /etc/docker/daemon.json
拉取镜像docker pull hub.850899.xyz/library/nginx:latest
重命名镜像docker tag hub.850899.xyz/library/nginx:latest nginx:latest
删除旧镜像docker rmi hub.850899.xyz/library/nginx:latest
清理系统垃圾docker system prune -a

最终效果

  • 国内客户端使用你自建代理源高速拉取镜像
  • 拉取后可清理或重命名去掉代理前缀
  • 镜像仓库更整洁、结构更规范
  • 支持多节点部署与缓存加速