上一节我们了解了docker的镜像等内容,为了更好的学习docker的内容,我们按照三大基础概念的方式进行讲解基础命令的使用内容。
为了方便讲解,这里我们讲解的内容都是基于服务器可以成功访问互联网的情况下,请注意!!
本章我们继续讲解docker的三大基础概念中的一个:容器。
简单的说,容器是镜像运行环境的展示,也是运行镜像的一个实例。之前讲过,若觉得容器不好理解,而你理解VM的虚拟机的内容,那你可以把容器想象成我们创建的一个VM虚拟机。虽然不是,但是方便你去理解。
容器的优点是十分的轻量级,你可以随时随地的创建、删除。
#1.创建容器
1.1 创建一个不自行启动的容器
基于标签为skyfans的镜像创建一个tomcat容器
docker create -it tomcat:skyfans
当我们使用如上命令创建容器时,默认容器是不会自行启动的,需要我们手动启动。
1.2 启动刚才创建的镜像
docker start 2ef43537abd4
这时,我们在查看刚才的容器,发现此容器已经成功启动了,并且端口是8080。
是不是感觉有点麻烦,那是否可以直接创建一个容器同时就启动它呢,那是必须可以的!
1.3 创建一个容器并直接启动容器
docker run -itd tomcat:skyfans
1.4 查看容器状态
docker ps -a
我们可以看到,我们刚才创建了一个容器,并且成功的直接启动了容器,无需再执行docker start命令去启动容器了。
2. 进入容器
命令格式:docker exec -it 容器ID 环境语言(可以是sh/bash/等)
docker exec -it 4be18e964de5 bash
这样,我们就进入到了容器的内部,你是不是会很好奇,那容器内部是什么呢?好我们来看下。
ls
pwd
根据图中我们可以看到咦?当我在/下执行ls命令的时候,查看到的文件列表是不是都是很熟悉呢?没错,那些都是我们日长使用的linux服务器的的文件。所以说,我们可以把容器理解为一个小的虚拟机。它包含了操作系统及很多的文件内容,像不像一个微型的服务器??这也是docker的一个优点所在,轻小!!!当然,你也可以在容器里执行各种Linux命令,但是要小心的是镜像中可能会没有这个命令,例如图中ll命令就没有。
3.退出容器
两种方式
(1)在命令行下输入exit命令
(2)按住ctrl+d即可退出容器。
4.停止容器
例如我们想让部署的重启停止该如何操作呢?我们来拿刚才我们启动的tomcat的容器做操作。
记录当前容器状态(注意观察status状态):
docker ps
docekr stop 4be18e964de5
当我们把容器停止后,记得要在查看docker容器的状态,需要加-a参数,否则我们会找不到刚才停止的那个容器。注意:docker ps 是查看当前正在运行的容器!!
docker ps -a
我们发现容器的status的状态已经是在2S之前退出了,说明此容器已经停止了。停止后的容器,我们仍然可以使用docker start来启动它。
docker start 4be18e964de5
docekr ps
我们看到,容器已经启动起来了,在2秒之前。
5.重启容器
那不难理解,我们当把容器理解为linux系统的虚拟机时,我们要重启系统应该怎么操作?对,执行reboot命令。但是容器的重启命令不是reboot,而是restart.
再次记录刚才操作的容器的情况,由于老师的服务器上面有多个启动的容器,为了不影响我们的视线,那我们过滤下,只看用于测试的容器:
docker ps |grep tomcat
记录启动时间 :2分钟前。我们去执行重启容器命令,这里我又犯了懒病,就使用容器的ID的前三位了啊:
docker restart 4be
我们有没有发现,重启后,容器的运行时间变成了2S。是不是感觉很方便,这里执行一个命令我们就可以查看到容器的几乎管理的所有内容,包括容器的名字,ID,启动时间,运行时差,端口等等,是不是感觉非常的方便?????
每个内容的删除操作我都习惯最后将,为啥?因为删除太危险,操作需谨慎!!!!
6.删除容器
命令格式:docekr rm 容器ID
那我们就操作我们刚才创建的容器
docker rm 4be18e964de5
什么?出现了这个提示??啥情况??哦,仔细读下发现哦,他说正在运行的容器是不允许你进行删除的。那就是说,我们还需要把这个容器先停止,在删除。嗯,是不是感觉安全了些呢?
docker stop 4be18e964de5
docker rm 4be18e964de5
这时,我们发现已经成功删除了刚才的容器。
好,容器部分的内容差不多已经讲解完了。关于容器还有存出和载入的内容,这里我们就不讲了,可以参考:docker私有镜像仓库搭建(可供本地及私有环境使用)
这个是对docker操作的一个完整的总结流程,想学的同学不要手懒,去照着做一遍。
我们来总结下:
docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG…]
决定容器的运行方式,前台执行还是后台执行(后台命令需要加什么)
docker run后面追加-d=true或者-d,那么容器将会运行在后台模式。
docker exec来进入到到该容器中,或者attach重新连接容器的会话
进行交互式操作(例如Shell脚本),那我们必须使用-i -t参数同容器进行数据交互
docker run时没有指定–name,那么deamon会自动生成一个随机字符串UUID