查看所有镜像
docker images -a //查看所有的镜像
docker images //查看除中间状态外的镜像
删除镜像
docker rmi 镜像ID
docker rmi $(docker images -a -q) //删除所有镜像
删除容器
docker rm 容器ID
docker rm $(docker ps -a -q) //删除所有容器
查看正在运行的容器
docker ps
查看所有的容器(包括正在运行与已停止的)
docker ps -a
停止容器
docker stop 容器ID
docker stop $(docker ps -a -q) //停止所有的容器
查看镜像与容器的空间占用
docker system df
docker system df -v //进一步的细节展示
查看命令的具体使用
1. 命令 --help //例如:docker images --help
2. docker //可打印所有的命令操作
容器与镜像的一些区别:
假设Linux内核是第0层,那么无论怎么运行Docker,它都是运行于内核层之上的。这个Docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态。
一个Docker镜像可以构建于另一个Docker镜像之上,这种层叠关系可以是多层的。第1层的镜像层我们称之为基础镜像(Base Image),其他层的镜像(除了最顶层)我们称之为父层镜像(Parent Image)。这些镜像继承了他们的父层镜像的所有属性和设置,并在Dockerfile中添加了自己的配置。
容器会在所有的镜像层之上增加一个可写层。这个可写层有运行在CPU上的进程,而且有两个不同的状态:运行态(Running)和退出态(Exited)。这就是Docker容器。当我们使用docker run启动容器,Docker容器就进入运行态,当我们停止Docker容器时,它就进入退出态。
当我们有一个正在运行的Docker容器时,从运行态到停止态,我们对它所做的一切变更都会永久地写到容器的文件系统中。要切记,对容器的变更是写入到容器的文件系统的,而不是写入到Docker镜像中的。
我们可以用同一个镜像启动多个Docker容器,这些容器启动后都是活动的,彼此还是相互隔离的。我们对其中一个容器所做的变更只会局限于那个容器本身。
如果对容器的底层镜像进行修改,那么当前正在运行的容器是不受影响的,不会发生自动更新现象。
如果想更新容器到其镜像的新版本,那么必须当心,确保我们是以正确的方式构建了数据结构,否则我们可能会导致损失容器中所有数据的后果。