批量处理docker容器以及镜像的脚本
批量处理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 的日常操作,如管理镜像和容器、设置网络、使用数据卷、清理系统以及一些高级功能。