到目前为止,我们学习docker里面的image和container的基本知识,也涉及到了一些docker命令。这篇,我们就来完整地学习docker命令,通过本篇学习,你就会知道如何去查询命令和大概知道哪些命令的基本作用是干嘛的,还有有些命令是可以简写的。
一、docker所有命令Help查询
docker服务启动之后,通过输入命令docker –help 回车之后,打印全部命令的帮助文档。在docker中命令主要划分为两大块,管理命令和命令。
docker单个命令Help查询
例如 docker images –help
或者docker container –help
容器相对来说命令比较多一些,这个也很正常,我们知道镜像是只读的,容器是可以读写的,我们学习docker很大一部分精力是学习如何操作和管理容器。
二、管理类命令简单了解
管理命令和普通命令区别就是,在普通命令的前面添加一个被管理的对象。例如这个对象是image,或者是container。我们这样通过一个具体的例子来理解这个管理命令的含义。
其实很多对象有很多类似或者一样的命令是实现一些基本操作,例如删除,这个时候就要通过对象来进行区分。不然输入docker ls 到底是显示镜像还是容器的清单呢?
三、常见命令练习
命令rm
我们知道,每次启动容器,都会产生一个容器的进程,特别是面对很多退出状态的容器,我们经常要删除这些容器。这里通过命令rm来删除容器。
上面我通过rm命令删除了全部容器,删除容器需要用到容器ID,可以一次命令删除多个,就像我这样写,也可以一个一个删除。在删除单个容器的时候,你的容器ID,只要输入一些特有的开头,也是可以顺利删除容器。
命令commit
这个命令是把一个容器制作成一个镜像,我下面用centos这个镜像启动一个容器--》然后创建一个test.txt文件--》然后利用commit制作成一个新的镜像。
你需要另外开一个ssh 对话,记住前面一个对话容器的ID。通过docker commit 容器ID产生的,我们可以通过IMAGE ID这列的值和我们执行完docker commit命令之后产生的哈希值是符合的。
到这里,我们知道有两种方式能制作出镜像。第一种是通过dockerfile写脚本,然后执行docker build命令制作镜像;第二个办法就是通过容器,然后输入commit命令来制作镜像。
命令cp
这个复制文件命令是在容器里面和本地系统进行文件拷贝。
还是上一篇环境,通过docker run –it centos,启动一个交互模式的容器,然后开第二个ssh会话,来执行docker cp命令。
# docker cp c6181218c16d:/tmp/test.txt /tmp/test_cp.txt
总结,cp的好处,最明显的作用就是,方便我们把容器里面的日志文件拷贝到外面这个宿主机上。
命令create
这个create是用来创建一个新的容器,我们目前一直都是使用docker run命令来运行容器,这里来学习一个新的命令,创建一个新的容器。基本命令格式是docker create image_name
到了这个,我们确实创建了一个容器,但是这个容器的状态是Created,还记得前面我们在容器初探这篇文章结尾,我只知道有一个Up和Exited的和Dead三种容器状态,这里有知道了一种Created。所以,docker run和docker create的区别就出来,create只是创建容器,不启动容器,而docker run是创建并且启动容器。
命令start
上面创建的容器状态是Created,意思就是创建没有启动,那么用什么命令去启动容器呢?用docker run肯定不行,因为run后面跟的参数是image的名称。这里启动容器是使用start命令。
我们看容器状态发现,之前是Created,现在变成了Exited,下面我们试试start命令来重启这个退出状态的容器。
命令pause
把一个容器从Up状态调整问暂停,有点像虚拟机的感觉。
命令unpause
取消暂停
命令stop
很明显,就是一个停止容器运行的命令
这图就是把状态从Up改成了停止也就是Exited状态,我们当然可以继续使用docker start 来启动这个容器。
有时候出于一些原因,我们使用stop命令并不能停止容器运行,这时候就需要强制使用docker kill命令了。