From 439753fb97666012e2adb65d3e044d32f56f276d Mon Sep 17 00:00:00 2001 From: FNS Service Date: Tue, 21 Apr 2026 20:10:48 +0800 Subject: [PATCH] Update from Sync Service --- Docker/Docker-Compose安装.md | 70 ++++++++++++++++++++++++++++++++++ Docker/Docker镜像清理.md | 62 ++++++++++++++++++++++++++++++ Docker/INDEX_Docker.md | 6 +-- Docker/批量删除已停止容器.md | 74 ++++++++++++++++++++++++++++++++++++ 4 files changed, 209 insertions(+), 3 deletions(-) create mode 100755 Docker/Docker-Compose安装.md create mode 100755 Docker/Docker镜像清理.md create mode 100755 Docker/批量删除已停止容器.md diff --git a/Docker/Docker-Compose安装.md b/Docker/Docker-Compose安装.md new file mode 100755 index 0000000..939abbb --- /dev/null +++ b/Docker/Docker-Compose安装.md @@ -0,0 +1,70 @@ +# 安装 Docker Compose + +## 方式一:作为容器运行(推荐) + +Docker Compose 可以作为容器运行,通过一个轻量级 bash 脚本调用。 + +```bash +# 下载并安装 +sudo curl -L --fail \ + https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m) \ + -o /usr/local/bin/docker-compose + +sudo chmod +x /usr/local/bin/docker-compose + +# 验证安装 +docker-compose --version +``` + +## 方式二:pip 安装 + +```bash +pip install docker-compose +``` + +## 方式三:standalone 二进制 + +```bash +# 下载指定版本 +COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f4) + +curl -L \ + "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \ + -o /usr/local/bin/docker-compose + +chmod +x /usr/local/bin/docker-compose +``` + +## 快速使用 + +```yaml +# docker-compose.yml 示例 +version: '3.8' +services: + web: + image: nginx:latest + ports: + - "80:80" + db: + image: postgres:13 + environment: + POSTGRES_PASSWORD: secret +``` + +```bash +# 启动服务 +docker-compose up -d + +# 查看状态 +docker-compose ps + +# 查看日志 +docker-compose logs -f + +# 停止服务 +docker-compose down +``` + +--- + +> 参考:[Docker Compose 官方文档](https://docs.docker.com/compose/) diff --git a/Docker/Docker镜像清理.md b/Docker/Docker镜像清理.md new file mode 100755 index 0000000..a0e8ad3 --- /dev/null +++ b/Docker/Docker镜像清理.md @@ -0,0 +1,62 @@ +# Docker 镜像清理 + +## 清理无用镜像 + +### 方法一:prune 命令(推荐) + +```bash +# 清理悬空镜像(无 tag 的镜像) +docker image prune -f + +# 清理所有未使用镜像 +docker image prune -a -f +``` + +### 方法二:批量清理 + +```bash +# 批量删除所有无用镜像,不会影响正在使用的镜像 +docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi +``` + +### 方法三:system prune(全面清理) + +```bash +# 清理所有未使用的容器、网络、镜像 +docker system prune -f + +# 清理所有未使用的镜像,不仅仅是悬空镜像 +docker system prune -a -f + +# 清理卷(注意:会删除数据) +docker system prune --volumes -f +``` + +## 清理前后对比 + +```bash +# 查看清理前 +docker images -a + +# 清理 +docker system prune -f + +# 查看清理后 +docker images -a +``` + +## 定时清理(可选) + +创建 cron 任务定期清理: + +```bash +# 编辑 crontab +crontab -e + +# 每周日凌晨 3 点清理 +0 3 * * 0 /usr/bin/docker system prune -f +``` + +--- + +> 参考:[Docker 官方文档](https://docs.docker.com/config/pruning/) diff --git a/Docker/INDEX_Docker.md b/Docker/INDEX_Docker.md index 6f2310d..39728a0 100755 --- a/Docker/INDEX_Docker.md +++ b/Docker/INDEX_Docker.md @@ -19,14 +19,14 @@ updated: 2026-04-21 |------|------| | [[Docker安装redis]] | Redis 容器化部署 | | [[Docker 部署 MongoDB]] | MongoDB 容器化部署 | -| [[安装docker-compose]] | Docker Compose 安装 | +| [[Docker-Compose安装]] | Docker Compose 安装 | ### 运维管理 | 笔记 | 说明 | |------|------| | [[centos7设置docker开机自启动]] | Docker 及容器自启动配置 | -| [[docker镜像清理]] | 清理无用镜像 | -| [[如何批量删除Docker中已经停止的容器]] | 批量清理已停止容器 | +| [[Docker镜像清理]] | 清理无用镜像 | +| [[批量删除已停止容器]] | 批量清理已停止容器 | ### Rancher | 笔记 | 说明 | diff --git a/Docker/批量删除已停止容器.md b/Docker/批量删除已停止容器.md new file mode 100755 index 0000000..3b42f8b --- /dev/null +++ b/Docker/批量删除已停止容器.md @@ -0,0 +1,74 @@ +# 批量删除已停止的 Docker 容器 + +## 方法一:使用 docker ps + awk(最常用) + +```bash +# 查看所有已停止的容器 +sudo docker ps -a | grep Exited + +# 获取已停止容器的 ID +sudo docker ps -a | grep Exited | awk '{print $1}' + +# 批量删除已停止容器 +sudo docker rm $(docker ps -a | grep Exited | awk '{print $1}') +``` + +## 方法二:删除所有未运行的容器 + +```bash +# 删除所有未运行的容器 +sudo docker rm $(sudo docker ps -a -q) +``` + +## 方法三:根据容器状态删除(Docker 1.13+) + +```bash +# 删除所有 Exited 状态的容器 +sudo docker rm $(docker ps -qf status=exited) +``` + +参数说明: +- `-q`:只输出容器 ID +- `status=exited`:筛选已退出的容器 +- `status=created`:筛选已创建但未启动的容器 +- `status=running`:筛选正在运行的容器 + +## 方法四:docker container prune(Docker 1.13+ 推荐) + +```bash +# 删除所有已停止的容器(交互式确认) +docker container prune + +# 直接删除,不确认(适合脚本) +docker container prune -f +``` + +## 方法五:删除所有容器(谨慎使用) + +```bash +# 删除所有容器(包括运行中的) +docker rm -f $(docker ps -aq) + +# 仅删除已停止的容器 +docker container prune -f +``` + +## 完整流程示例 + +```bash +# 1. 查看当前容器状态 +docker ps -a + +# 2. 统计已停止容器数量 +docker ps -a | grep Exited | wc -l + +# 3. 批量删除已停止容器 +docker rm $(docker ps -aq -f status=exited) + +# 4. 确认删除结果 +docker ps -a +``` + +--- + +> Docker 1.13+ 版本建议使用 `docker container prune` 命令,更简洁安全。