针对docker当中镜像与容器的清理操作,简单来讲有几个操作:镜像信息获取,镜像移除,容器移除,容器停止;

1、镜像信息获取

docker images命令可以获取本地仓库中的所有镜像
命令格式:

docker images [OPTIONS] [REPOSITORY[:TAG]]

可接受参数:

序号

参数

含义

1

-a, --all

展示所有的镜像数据(默认会隐藏中间镜像信息);

2

–digests

显示镜像的摘要信息;

3

-f, --filter filter

根据提供的条件过滤输出;

4

–format string

以一个格式化的模板输出镜像信息;

5

–no-trunc

展示的信息不需要做截断处理(镜像id);

6

-q, --quiet

只展示镜像的id;

2、镜像移除

命令格式:

docker rmi [OPTIONS] IMAGE [IMAGE ...]

可接受参数:

序号

参数

含义

1

-f, --force

强制移除当前的镜像,无论是否正在被使用;

2

–no-prune

不会同步删除未打标签的父级镜像;

通过以上docker images命令和docker rmi可以将所有的镜像全部清除:

$ docker rmi $(docker images -q)

3、容器移除

移除容器之前首先需要获取到需要移除的容器信息,获取容器信息可通过docker ps命令:
命令格式:

docker ps [options]

可接受参数:

序号

参数

含义

1

-a, --all

展示所有容器(默认只展示正在运行的容器);

2

-f, --filter filter

根据条件过滤输出信息;

3

–format string

以一个格式化的模板输出容器信息;

4

-n, --last int

获取n个最近创建的容器(包含所有状态);

5

–no-trunc

展示的信息不需要做截断处理;

6

-q, --quiet

只展示容器的id;

7

-s, --size

展示文件的总大小;

容器移除可以通过docker rm命令进行操作:
命令格式:

docker rm [OPTIONS] CONTAINER [CONTAINER ...]

可接受参数:

序号

参数

含义

1

-f, --force

强制移除正在运行的容器,默认情况下是不可移除运行状态中的容器,同理容器使用的镜像在默认情况下也不可移除;

2

-l, --link

移除特定的关联,针对于父子容器的这种情况;

3

-v, --volume

移除容器关联的数据卷;

通过以上docker ps命令和docker rm可以将所有已停止的容器全部清除:

$ docker rm $(docker ps -a -q)

4、容器停止

容器停止可以通过docker kill和docker stop命令进行操作,推荐使用docker top进行优雅关闭:
命令格式:

docker kill [OPTIONS] CONTAINER [CONTAINER ...]

可接受参数:

序号

参数

含义

1

-s, --signal string

发送给容器的信号(默认为KILL);

命令格式:

docker kill [OPTIONS] CONTAINER [CONTAINER ...]

可接受参数:

序号

参数

含义

1

-t, --time int

在真正kill执行之前等待的时间(默认10秒);

通过以上docker stop命令和docker ps可以将所有运行的容器全部停止:

$ docker stop $(docker ps -a -q)