今天心血来潮,学习了一下基本的docker,感觉它的功能确实很强大
最初不明白为啥要镜像、容器的关系,后来自己在网上学着构建了一个镜像,然后把它运行成无数个容器后,才发现他们的关系,一个是静态的,一个是动态的,如下图:
查询他们的命令也不同,docker images查询系统中所有的镜像。。。。默认是按创建时间排序的,然后从公网环境下载了一个镜像learn/tutorial(直接从公网docker pull learn/tutorial拉下来的)。发现它居然是8年前就创建级的。。。。
可想而知,我这是落后了多少年额!!!!!
今天掌握的docker 常见的命令
docker ps 列出系统中已有的容器
-
-l :显示最近创建的容器,只展示最近的一条数据,不管容器的状态是什么,都会加载出来
-
-a :显示所有的容器,包括未运行的,状态为created也会列出来
-
-n 5 列出最近创建的5个容器
容器创建以后,如果容器内的进程无法启动、运行挂掉、正在运行,都会一直存在,除非用命令docker rm CONTAINERID删除
容器删除命令必须在容器没有处于运行状态,才行,直接删除created状态的容器,可以很轻松直接删掉:
运行状态的删除,会有提示:
最后还有一点就是容器的生成和git 太像了,直接docker run learn/tutorial yum install net-tools就可以生成一个新的镜像,然后commit一下就可以产生完整的镜像
可惜我的centos环境和docker没有完全匹配,所以install命令执行失败了,我就想试试,能不能commit,结果后续步骤我就commit了很多个自定义命名的镜像,
然后我就想着把这些重复的镜像删掉,结果用命令,docker rmi imageId删除了这些数据,如下图