这篇,继续来学习docker命令,上面一篇介绍到了如何通过容器,利用commit命令来制作镜像文件,再次强调,这种方式不推荐。我们推荐分享你写的Dockerfile文件,别人就能通过Dockerfile来构建镜像,这个比容器commit的方便很多,而且更安全。因为别人不知道你容器有什么配置,病毒什么的。
命令cp
这个复制文件命令是在容器里面和本地系统进行文件拷贝。
还是上一篇环境,通过docker run –it centos,启动一个交互模式的容器,然后开第二个ssh会话,来执行docker cp命令。
先在容器环境里做一个测试文件
利用vi编辑,输入一行文字,保存退出。
我这尝试拷贝到本地系统的根目录下
出现没有权限问题,因为我使用时anthony用户不是root,出现这个错误很正常,那么我们拷贝到anthony这个用户的路径下。
检查下abc_copy.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,下面我们试试restart命令来重启这个退出状态的容器。
虽然状态还是退出,但是我们通过旁边3秒之前,说明这个restart命令是起作用了。
命令pause
把一个容器从Up状态调整问暂停
命令unpause
取消暂停
命令stop
很明显,就是一个停止容器运行的命令
这图就是把状态从Up改成了停止也就是Exited状态,我们当然可以继续使用docker start 来启动这个容器。
有时候出于一些原因,我们使用stop命令并不能停止容器运行,这时候就需要强制使用kill命令了。
命令inspect
容器对象使用inspect效果
镜像对象使用inspect效果
命令inspect返回得到都是一个json对象,里面包含了容器或者镜像的全部信息。这个命令在debug的时候很有用,在查看镜像或者容器的配置信息等。
Docker命令就暂时学习到这里,基本上介绍了大部分容器相关的命令,还有一些镜像相关命令没有介绍。以后慢慢学,肯定会覆盖我没有介绍到的命令和知识点。