Files
nexus/wiki/sources/如何删除旧的废弃的docker-container-volume.md

3.4 KiB
Raw Blame History

title, type, tags, date
title type tags date
如何删除旧的废弃的 Docker Container + Volume source
docker
container
portainer
volume
2026-04-26

Source File

Summary用中文描述

  • 核心主题:清理 Docker 环境中废弃的 Portainer 容器、Volume 和 Network 的完整操作流程
  • 问题域Docker 容器残留导致的端口冲突、卷数据残留、以及重启 Portainer 时出现的 WARN 警告
  • 方法/机制:通过 docker stop/rmdocker volume ls/rmdocker network ls/rm 系列命令手动清理;使用 docker compose down 一键清理整个 compose 项目;通过 external: true 配置避免 future 部署时的资源冲突
  • 结论/价值:提供了从手动单步清理到一键重装的完整操作链,以及 WARN 原因分析和解决方案

Key Claims用中文描述

  • docker compose down 命令可同时删除容器、网络和匿名 Volume但保留命名 Volume
  • docker volume rm 可显式删除指定 Volumeportainer_data),从而清除 Portainer 所有用户数据和配置
  • Docker WARN "Network already exists" 表示同名 network 由另一个 compose 项目创建,与当前项目冲突
  • Docker WARN "Volume is used by another service" 表示同名 volume 属于另一个 compose 项目的不同 project name
  • 在 compose 文件中设置 external: true 可让新项目复用旧 network/volume 而不触发冲突警告

Key Quotes

"⚠️ 注意:这会删除 Portainer 所有数据(用户、配置)。如果你想保留数据,不要删 volume只需要在 compose 文件里加:external: true" — 删除 portainer_data 的重要提示

Key Concepts

  • Docker ContainerDocker 镜像的运行实例,docker ps -a 查看所有容器,docker rm 删除已停止容器,docker rm -f 强制删除运行中容器
  • Docker Volume:持久化存储机制,挂载到容器内部用于保存数据;docker volume ls 列出所有卷,docker volume rm 删除指定卷
  • Docker Network:容器间通信的虚拟网络;同名 network 冲突是 compose 项目隔离机制导致的警告
  • Docker Composedocker compose down 停止并删除整个 compose 项目中的容器、网络,以及(非 external 的)命名卷
  • Docker SocketDocker 守护进程的 Unix Socket通常为 /var/run/docker.sockPortainer 通过挂载它实现对本地 Docker 的管理

Key Entities

  • Portainer:开源 Docker 容器管理面板,本文档的清理目标;portainer/portainer-ce 为其 Community Edition 镜像
  • portainer_dataPortainer 的命名 Docker Volume存储用户、配置等持久化数据

Connections

Contradictions

  • 无已知冲突

完整操作流程速查

# 最干净的重装流程
docker stop portainer && docker rm portainer
docker volume rm portainer_data
docker network rm portainer_network
docker compose up -d
# 一键清理compose 部署)
docker compose down          # 删除容器+网络+匿名卷
docker compose down -v       # 额外删除命名卷(谨慎!)