Docker | 使用dockerfile生成镜像,清理docker空间

2022-10-24 16:09:23 浏览数 (1)

dockerfile生成镜像并挂载数据卷

编写dockerfile文件

  1. 创建dockerfile01 文件
代码语言:javascript复制
# 基础镜像
FROM centos

VOLUME ["volume01", "volume02"]

CMD echo "-----end----"
  1. docker build 构建镜像
代码语言:javascript复制
docker build -f ./dockerfile01 -t xiao-centos .
  1. 启动镜像
代码语言:javascript复制
docker run -it 镜像ID /bin/bash

可以看到生成镜像时自动挂载的,数据卷目录

以上dockerfile方式属于匿名挂载数据卷

清理docker使用空间

我个人使用的是单核2G的云服务器,用了快三年了,内存、cpu严重吃紧,所以就尝试了清理docker使用空间,主要是删除未使用过的镜像、容器、数据卷、网络命令,具体如下:

官方文档链接 https://docs.docker.com/config/pruning/

  • 执行如下可以查看 Docker 的磁盘使用情况(类似于 Linux 上的 df 命令)
代码语言:javascript复制
docker system df
  • 删除所有未使用过的镜像
代码语言:javascript复制
docker image prune -a
  • 删除所有停止的容器
代码语言:javascript复制
docker container prune
docker rm -f $(docker ps -aq)
  • 仅删除超过 24 小时的停止容器
代码语言:javascript复制
docker container prune --filter "until=24h"

数据卷永远不会自动删除,因为这样做可能会破坏数据

  • 删除未使用的数据卷
代码语言:javascript复制
docker volume prune
  • 删除没有使用过的网络
代码语言:javascript复制
docker network prune
  • 删除所有未使用过的资源
代码语言:javascript复制
docker system prune

手动删除/var/lib/docker/volumes的问题解决

当时清理docker使用空间的时候,清过头了,一下子把挂载的数据卷也给顺手清理了

0 人点赞