docker 容器和镜像管理

docker容器管理

下面介绍docker容器管理相关命令。(命令可能需要使用sudo)

删除容器

查看所有容器

首先注意区分这两条命令,根据docker官方文档的教程: 
docker container ls # List all running containers 
docker container ls -a # List all containers, even those not running 
所以我们应该使用 docker container ls -a 查看所有容器 
可以看到我这里创建了很多IMAGE是4f03fc6e74f6的,重复的容器。 

查看所有容器
(docker ps [OPTIONS]命令有别名docker container ls [OPTIONS])

删除一个容器

格式:docker rm container-id 
栗子:docker rm 82523c7dcf52 
Usage: docker rm [OPTIONS] CONTAINER [CONTAINER…]

我们还需要知道查看容器id的命令

查看容器id的命令

格式:docker ps -a 

查看容器id
一个一个删除容器,效率太低了。(是啊,你之前创建了那么多重复的容器,当然一个一个删除起来麻烦啊) 
确实有一次删除多个容器的命令。

一次删除多个容器

格式:docker rm $( docker ps –a –f ancestor=image-id ) 
其中ancestor的含义如下,来源docker官方文档。
解释下这个命令,docker ps -a是列出所有容器,-f是设置filter,filter的格式是key=value,键值对的形式,如果有多个filter,需要传递多个参数 
(e.g. –filter “foo=bar” –filter “bif=baz”) 
(没错,这就是官网的教程2333) 
通过docker ps -a -f得到,同源镜像的所有容器。(虽然貌似这里混入了一个奇怪的东西,但是我懒,没有去探索为什么。) 

同源镜像的容器

得到了要删除的容器的id,直接docker rm就好了。 

这里写图片描述
 
docker ps -a再次查看所有容器,删除成功。 

这里写图片描述
删除镜像

查看所有镜像

查看所有镜像 

命令 docker image ls -a 
(没错,又是之前没好好学,创建了很多重复的IMAGE,当执行下载Image的命令后,在本地查看Images时,下载的Image的Repository和Tag都为<none>) 


停止所有容器命令

先提一下停止所有容器的命令 
命令: docker stop $(docker ps -a -q) 
其中 -q 只显示数字ID

删除镜像

直接暴力删除镜像是不行的哦,删除image前需要删除依赖这个image的所有容器。删除容器前需要保证容器是停止的。

暴力删除镜像 

删除镜像命令

Usage:docker rmi [OPTIONS] IMAGE [IMAGE…] 
栗子:docker rmi image-id 

删除一个镜像
使用图形化管理工具

其实我们并不是一定要通过cli来管理的,可以使用图形化管理工具。 
参考来源:http://blog.csdn.net/pmlpml/article/details/71083907

几乎所有容器开发商都有自己的 UI 管理界面。这些 UI 共同的特点就是就是本身以一个容器的方式存在,例如:Portainer。 
启动 portainer 
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

这里最关键的部分 -v /var/run/docker.sock:/var/run/docker.sock 容器与主机共享了文件 /var/run/docker.sock 从而,容器获得了 docker 驻守(daemon)进程 REST API SDK 入口。

在浏览器输入 http://localhost:9000 就进入了图形管理界面,下图是Containers界面。 

portainer
成功删除 

portainer删除容器

发布了185 篇原创文章 · 获赞 312 · 访问量 56万+

猜你喜欢

转载自blog.csdn.net/shujuelin/article/details/103290881