批量处理docker容器以及镜像的脚本
- 一、删除已经不运行的docker容器
 - 二、删除未定义的镜像
 - 三、其他docker命令记录
 - 1. 镜像管理
 - 2. 容器管理
 - 3. 网络管理
 - 4. 数据卷管理
 - 5. 清理命令
 - 6. 常用高级功能
 
本文介绍一些docker中批量处理docker容器以及镜像的脚本
一、删除已经不运行的docker容器
docker ps -a 可以查看所有的docker容器,为了清理已经不运行的容器,可以通过grep Exited过滤。获取所有容器的id然后逐个删除容器。
for item in `docker ps -a | grep Exited | awk '{print $1}'`
dodocker rm $item
done
 
二、删除未定义的镜像
删除镜像前可能某容器还在使用导致不能删除,因此先执行第一步,然后执行以下脚本就可以删除镜像了。
for item in `docker images | grep none | awk '{print $3}'`
dodocker rmi $item
done
 
三、其他docker命令记录
以下是一些常用的 Docker 命令,涵盖了镜像管理、容器管理、网络、数据卷以及一些实用的高级功能。
1. 镜像管理
- 列出所有本地镜像
docker images - 搜索镜像
docker search <image_name> - 拉取镜像
docker pull <image_name>:<tag> - 删除镜像
docker rmi <image_id> - 构建镜像
docker build -t <image_name>:<tag> <path_to_dockerfile> - 查看镜像历史
docker history <image_name> 
2. 容器管理
- 列出所有容器(包括停止的容器)
docker ps -a - 运行一个新的容器
docker run -d --name <container_name> <image_name>-d: 后台运行容器。--name: 为容器指定一个名称。
 - 运行一个交互式容器
docker run -it <image_name> /bin/bash - 停止容器
docker stop <container_id> - 启动已停止的容器
docker start <container_id> - 重启容器
docker restart <container_id> - 删除容器
docker rm <container_id> - 查看容器日志
docker logs <container_id> - 进入正在运行的容器
docker exec -it <container_id> /bin/bash - 导出容器为 tar 文件
docker export -o <file_name>.tar <container_id> - 导入容器
docker import <file_name>.tar 
3. 网络管理
- 列出网络
docker network ls - 创建网络
docker network create <network_name> - 删除网络
docker network rm <network_name> - 连接容器到网络
docker network connect <network_name> <container_name> - 断开容器与网络的连接
docker network disconnect <network_name> <container_name> 
4. 数据卷管理
- 列出所有数据卷
docker volume ls - 创建数据卷
docker volume create <volume_name> - 挂载数据卷到容器
docker run -v <volume_name>:<container_path> <image_name> - 删除数据卷
docker volume rm <volume_name> 
5. 清理命令
- 清理未使用的镜像、容器、网络和数据卷
docker system prune - 清理未使用的数据卷
docker volume prune - 清理未使用的镜像
docker image prune 
6. 常用高级功能
- 查看容器的详细信息
docker inspect <container_id> - 查看容器的资源使用情况
docker stats <container_id> - 查看容器内运行的进程
docker top <container_id> - 复制文件到容器
docker cp <local_path> <container_id>:<container_path> - 从容器中复制文件
docker cp <container_id>:<container_path> <local_path> 
这些命令涵盖了 Docker 的日常操作,如管理镜像和容器、设置网络、使用数据卷、清理系统以及一些高级功能。
