当Docker容器完成任务或发生错误后,它们会进入"Exited"状态。这些已停止的容器会占用磁盘空间,需要定期清理。以下是清除Exited状态容器的详细方法:
首先确认哪些容器处于Exited状态:
docker ps -a --filter "status=exited"
或者查看所有容器(Exited状态的会显示为"Exited"):
docker ps -a
找到要删除的容器ID后,使用以下命令删除:
docker rm <container_id>
例如:
docker rm 3a2b1c0d9e8f
docker rm $(docker ps -aq --filter "status=exited")
更简单的方法是使用prune命令:
docker container prune
这会删除所有已停止的容器,系统会要求确认。
在启动容器时添加--rm
标志,容器停止后会自动删除:
docker run --rm image_name
在/etc/docker/daemon.json
中添加以下配置(需要重启Docker服务):
{
"live-restore": true,
"cleanup": true
}
可以设置cron任务定期清理Exited容器:
# 编辑crontab
crontab -e
# 添加以下行,每天凌晨3点清理
0 3 * * * /usr/bin/docker container prune -f
docker cp
命令备份docker logs <container_id>
可以查看已停止容器的日志如果要同时清理未使用的网络、卷和镜像:
docker system prune
这会删除:
- 所有已停止的容器
- 所有未被容器使用的网络
- 所有悬空镜像
- 所有未被容器使用的卷(使用-a
标志时)
希望这些方法能帮助您有效管理Docker容器资源!