Files
nexus/wiki/sources/如何删除旧的废弃的docker-container-volume.md
2026-04-27 00:02:56 +08:00

60 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "如何删除旧的废弃的 Docker Container + Volume"
type: source
tags: [docker, container, portainer, volume]
date: 2026-04-26
---
## Source File
- [[Home Office/如何删除旧的废弃的docker container +volume.md]]
## Summary用中文描述
- 核心主题:清理 Docker 环境中废弃的 Portainer 容器、Volume 和 Network 的完整操作流程
- 问题域Docker 容器残留导致的端口冲突、卷数据残留、以及重启 Portainer 时出现的 WARN 警告
- 方法/机制:通过 `docker stop/rm``docker volume ls/rm``docker network ls/rm` 系列命令手动清理;使用 `docker compose down` 一键清理整个 compose 项目;通过 `external: true` 配置避免 future 部署时的资源冲突
- 结论/价值:提供了从手动单步清理到一键重装的完整操作链,以及 WARN 原因分析和解决方案
## Key Claims用中文描述
- `docker compose down` 命令可同时删除容器、网络和匿名 Volume但保留命名 Volume
- `docker volume rm` 可显式删除指定 Volume`portainer_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 Container]]Docker 镜像的运行实例,`docker ps -a` 查看所有容器,`docker rm` 删除已停止容器,`docker rm -f` 强制删除运行中容器
- [[Docker Volume]]:持久化存储机制,挂载到容器内部用于保存数据;`docker volume ls` 列出所有卷,`docker volume rm` 删除指定卷
- [[Docker Network]]:容器间通信的虚拟网络;同名 network 冲突是 compose 项目隔离机制导致的警告
- [[Docker Compose]]`docker compose down` 停止并删除整个 compose 项目中的容器、网络,以及(非 external 的)命名卷
- [[Docker Socket]]Docker 守护进程的 Unix Socket通常为 `/var/run/docker.sock`Portainer 通过挂载它实现对本地 Docker 的管理
## Key Entities
- [[Portainer]]:开源 Docker 容器管理面板,本文档的清理目标;`portainer/portainer-ce` 为其 Community Edition 镜像
- [[portainer_data]]Portainer 的命名 Docker Volume存储用户、配置等持久化数据
## Connections
- [[用Docker安装Portainer]] ← depends_on ← [[如何删除旧的废弃的 Docker Container + Volume]]
- [[如何在Ubuntu Server安装 Docker & Docker Compose]] ← related_to ← [[如何删除旧的废弃的 Docker Container + Volume]]
## Contradictions
- 无已知冲突
## 完整操作流程速查
```bash
# 最干净的重装流程
docker stop portainer && docker rm portainer
docker volume rm portainer_data
docker network rm portainer_network
docker compose up -d
```
```bash
# 一键清理compose 部署)
docker compose down # 删除容器+网络+匿名卷
docker compose down -v # 额外删除命名卷(谨慎!)
```