引言
大概几个月前,我曾经写过一篇文章叫《微服务为什么一定要用docker》。当时,写完这篇以后,有些粉丝表示想看看基本入门教程,希望我写一篇。然后呢,大家也知道,我其实很不爱写这种级别的文章,所以一拖再拖。
于是,趁着近期有时间,烟哥体内的洪荒之力压抑不住了,决定写一篇的入门教程。考虑到写这种入门级别的文章,老是贴命令,那不是很无趣!
因此,我们用来写Docker入门教程!
正文
Ladies and gentleman,My name is docker。
额,尴尬!好吧,容我默默开始介绍自己!我的名字叫Docker,我在2013年的时候,就来到了这个世上!然而那会并没有多少人知道我,对此我哭的很伤心。甚至无数个夜里,我都从梦中惊醒,思考着:当初来到这个世上究竟是对还是错!
转眼间来到了2017年,容器技术成为了一种主流,而我成为了容器技术的头牌花魁!俗话说的好,人中吕布,马中赤兔。啊,不对,串场了,不好意思,其实我想表达的意思就是,现在操作系统中首选的是Linux,而容器技术首选的就是Docker啦…..
额!假装没看到。继续我们的话题,至于我的优点,比如可以提供一致的运行环境啦,可以更轻松的迁移啦…(以下省略10000字)…
:关于这块内容,可以看烟哥的另一篇《微服务为什么一定要用docker》,我就不重复啰嗦了。
嗯,接下来,我来介绍一下,我是怎么进行安装的!首先,你要检查一下操作系统的版本….balabala
:这块就略过吧,毕竟怎么安装,应该不用赘述!
接下来,我就要说说自己的五个小弟!
-
镜像
-
容器
-
仓库
-
客户端
-
服务端
说到这里,我不得不祭出一张图,大家稍等!看图!
仓库
所谓这个仓库嘛!就上面最右边的哪个部分。唉,就是放一堆镜像的地方啦。我们可以推镜像到仓库中,同一个镜像也可以有多个版本,这里称为tag,也就是标签!
:大家都知道啊,外国的镜像仓库下载慢啊!所以,大家都会去下面这个文件中
修改一下镜像仓库的路径,最出名的就是下面几个啦
-
http://hub-mirror.c.163.com
-
https://mirror.ccs.tencentyun.com
-
等等
这样就能提升下载镜像的速度啦!最后,记得执行
这样配置就生效了!
客户端和服务端
客户端就是上图最左边到部分,其实就是一个执行docker命令的地方啦!
那服务端呢,实际上一个称为docker daemon的守护进程。它既负责监听客户端的请求,并且管理着Docker的镜像、容器、 络、磁盘等资源!
镜像和容器
终于到了重头戏,也就是镜像和容器
所谓镜像,是一种轻量级的、可执行的独立软件包,用来打包软件运行环境..(省略100字)..
所谓容器,是用镜像创建的运行实例..(省略50字)..
其实在上面那段代码中,就可以被理解为镜象,对象就可以称为之容器。就好像类是可以继承一样,镜像也是可以继承的!
额!!!其实有一个类似的,但是不完全一样。在我这里又一个镜像的概念,一般要满足下面两个条件
-
不依赖其他镜像,从 scratch 构建
-
其他镜像可以之为基础进行扩展
介绍完几个基本概念后,讲几个常见命令就好,为防误伤,大家注意!
其实懂几个镜像和容器有关的命令,就差不多ok!
镜像命令
比如你总要知道,怎么拉镜像吧p>
这样就能拉取这个镜像了!这个目录下,可以通过修改增加配置,来修改镜像的存储位置!
好问题!用下面的命令来看
可是,大家会不会有一个疑问何查看远程仓库里有哪些镜像么p>
这个命令就能看远程仓库里有哪些 的镜像啦!
最后一个就是删除本地镜像的命令。
镜像命令会这四句就够用了!
到了容器命令了,记得
容器命令
比如,你总要知道当前有哪些正在运行的容器吧,那就是下面这个命令
那怎么运行容器呢,如下所示
这代表的就是运行一个hellp-world的镜像,生成一个正在运行的容器实例。
这个容易,的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。最后一个命令,杀掉一个运行中的容器!
数据卷
OK,这里不得不提一个很重要的概念,也就是数据卷!在docker中,容器一旦关闭,容器中的数据就会丢失。容器重启启动后,不会加载原来的数据!因此,在实际应用中,我们会将容器内的数据需要持久化到宿主机上!因此,这个命令,大家一定要了解!
主要注意这个地方
对应就是,意思就是宿主机的/test目录挂载到容器的/soft目录!
DockerFile
所以呢,嗯,我们先来讲讲的相关指令
额,那讲讲原理吧,具体指令大家以后去查询!:其实大家工作中自己去写几率太低!
不知道大家有没听过一个说法,Docker镜像是分层的,类似洋葱一样,一层一层的包装起来的!
这话怎么理解呢要从说起了!如下所示
先稍微解释一下
现在,你要编译该,生成一个名字为的镜像,命令如下
结果如下
第一步,先生成了一个标识符为d1b55fd07600的镜像。
总结,docker在构建镜像的时候,会逐行执行我们的Dockerfile中的每一行,每执行一行的时候,docker就会创建出一个新的层来存放新的内容,最后得到我们的镜像!
总结
最近忙着复习,预计tiao cao,所以更的慢一点,大家莫催~
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8932 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!