戳蓝字“CSDN云计算”关注我们哦!

引言

大概几个月前,我曾经写过一篇文章叫《微服务为什么一定要用docker》。当时,写完这篇以后,有些粉丝表示想看看基本入门教程,希望我写一篇。然后呢,大家也知道,我其实很不爱写这种Hello World级别的文章,所以一拖再拖。于是,趁着近期有时间,烟哥体内的洪荒之力压抑不住了,决定写一篇docker的入门教程。考虑到写这种入门级别的文章,老是贴命令,那不是很无趣!因此,我们用拟人体来写Docker入门教程!

正文

Ladies and gentleman,My name is docker。
额,尴尬!好吧,容我默默开始介绍自己!我的名字叫Docker,我在2013年的时候,就来到了这个世上!然而那会并没有多少人知道我,对此我哭的很伤心。甚至无数个夜里,我都从梦中惊醒,思考着:当初来到这个世上究竟是对还是错!


转眼间来到了2017年,容器技术成为了一种主流,而我成为了容器技术的头牌花魁!俗话说的好,人中吕布,马中赤兔。啊,不对,串场了,不好意思,其实我想表达的意思就是,现在操作系统中首选的是Linux,而容器技术首选的就是Docker啦…..
额!假装没看到。继续我们的话题,至于我的优点,比如可以提供一致的运行环境啦,可以更轻松的迁移啦…(以下省略10000字)…ps:关于这块内容,可以看烟哥的另一篇《微服务为什么一定要用docker》,我就不重复啰嗦了。嗯,接下来,我来介绍一下,我是怎么进行安装的!首先,你要检查一下操作系统的版本….balabalaps:这块就略过吧,毕竟怎么安装,应该不用赘述!接下来,我就要说说自己的五个小弟!

  • 镜像

  • 容器

  • 仓库

  • 客户端

  • 服务端

说到这里,我不得不祭出一张图,大家稍等!看图!
啊,不对,拿错图了。是下面这张

仓库

所谓这个仓库嘛!就上面最右边的哪个部分Registry。唉,就是放一堆镜像的地方啦。我们可以推镜像到仓库中,同一个镜像也可以有多个版本,这里称为tag,也就是标签!
ps:大家都知道啊,外国的镜像仓库下载慢啊!所以,大家都会去下面这个文件中修改一下镜像仓库的路径,最出名的就是下面几个啦

  • http://hub-mirror.c.163.com

  • https://mirror.ccs.tencentyun.com

  • 等等

这样就能提升下载镜像的速度啦!最后,记得执行这样配置就生效了!

客户端和服务端

客户端就是上图最左边到部分,其实就是一个执行docker命令的地方啦!那服务端呢,实际上一个称为docker daemon的守护进程。它既负责监听客户端的请求,并且管理着Docker的镜像、容器、网络、磁盘等资源!

镜像和容器

终于到了重头戏,也就是镜像和容器所谓镜像,是一种轻量级的、可执行的独立软件包,用来打包软件运行环境..(省略100字)..所谓容器,是用镜像创建的运行实例..(省略50字)..
因为那种说法太复杂了,读者们不会有耐心一个字一个字看的~~

其实关于镜像和容器,网上有一个很经典的比喻!其实在上面那段代码中,Person就可以被理解为镜象,对象p就可以称为之容器。就好像类是可以继承一样,镜像也是可以继承的!额!!!其实有一个类似的,但是不完全一样。在我这里又一个base镜像的概念,一般要满足下面两个条件

  • 不依赖其他镜像,从 scratch 构建

  • 其他镜像可以之为基础进行扩展

可能这两个条件理解起来可能很抽象。其实很简单的,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等。可以这么理解,99%的镜像都是通过在 base镜像中安装和配置需要的软件构建出来的介绍完几个基本概念后,讲几个常见命令就好,为防误伤,大家注意!
其实懂几个镜像和容器有关的命令,就差不多ok!

镜像命令

比如你总要知道,怎么拉镜像吧?这样就能拉取httpd这个镜像了!
那拉到操作系统上的哪个位置呢?
ok,是拉到/var/lib/docker这个目录下,可以通过修改docker.service增加配置,来修改镜像的存储位置!
好问题!用下面的命令来看
可是,大家会不会有一个疑问?我如何查看远程仓库里有哪些镜像么?这个命令就能看远程仓库里有哪些 httpd的镜像啦!最后一个就是删除本地镜像的命令。
如下所示:镜像命令会这四句就够用了!到了容器命令了,记得


容器命令

比如,你总要知道当前有哪些正在运行的容器吧,那就是下面这个命令那怎么运行容器呢,如下所示这代表的就是运行一个hellp-world的镜像,生成一个正在运行的容器实例。

这个容易,/bin/bash的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
最后一个命令,杀掉一个运行中的容器!

数据卷

OK,这里不得不提一个很重要的概念,也就是数据卷!
在docker中,容器一旦关闭,容器中的数据就会丢失。容器重启启动后,不会加载原来的数据!
因此,在实际应用中,我们会将容器内的数据需要持久化到宿主机上!
因此,这个命令,大家一定要了解!
主要注意这个地方对应就是-v /宿主机:/容器内目录,意思就是宿主机的/test目录挂载到容器的/soft目录!
这个命令,很重要,但凡搭建redis,mysql这样的容器,一定会用到数据卷挂载!

DockerFile

所谓DockerFile,它是一个文本文件,可以用这个文件来构建镜像!所以呢,嗯,我们先来讲讲DockerFile的相关指令
额,那讲讲原理吧,具体指令大家以后去查询!
ps:其实大家工作中自己去写DockerFile几率太低!不知道大家有没听过一个说法,Docker镜像是分层的,类似洋葱一样,一层一层的包装起来的!
为防止大家不认识洋葱,上图
这话怎么理解呢?那就要从DockerFile说起了!
如下所示先稍微解释一下现在,你要编译该DockerFile,生成一个名字为my_test_image的镜像,命令如下结果如下第一步,先生成了一个标识符为d1b55fd07600的镜像。
第二步,在第一步的基础上,又包了一层(像洋葱一样),生成一个标识符为44ab3f1d4cd6的镜像
第三部,又在第二步的镜像基础上,又包了一层,生成了一个标识符为174b1e992617的镜像
以此类推,得到我们的镜像!总结,docker在构建镜像的时候,会逐行执行我们的Dockerfile中的每一行,每执行一行的时候,docker就会创建出一个新的层来存放新的内容,最后得到我们的镜像!

总结

本文写到最后,深感痛心疾首!我居然写这么low的文章,默默忏悔。希望大家通过这篇文章能够入门docker!最近忙着复习,预计tiao cao,所以更的慢一点,大家莫催~

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

推荐阅读:

  • 如何高效地准备技术面试?

  • 漫画:有趣的“帽子问题”

  • 我为什么放弃了 Chrome?

  • 5天破10亿的哪吒,为啥这么火,Python来分析

  • 通俗易懂:图解10大CNN网络架构

  • 互联网公司上演反腐风暴;GitHub CEO 对断供表示无能为力;程序员面试锦集| 开发者周刊

  • 在其他国家被揭穿骗子又盯上非洲? 这几个骗子公司可把非洲人民坑苦了……

真香,朕在看了!

Docker,一个傲娇的男人相关推荐

  1. 作为90后迈向成为一个优秀的男人系列之二

    八.时刻保持你的微笑,让礼貌成为你的名片 男人到了二十几岁后,要时刻保持你的微笑.笑脸迎人,说明你是一个善良的人,所有的人都愿意与善良的人打交道.不要把苦闷写在 你的脸上,这样只会使别人远离你.你是什 ...

  2. 如何做一个优秀的男人

    一.拥有自信和风度        男人要用心去经营自己,它体现在自己的思想与涵养上.自信是一个男人最重要的品质,自信的男人就你像一只在暴风雨中战斗的海鸥.海鸥所要说的只有一句话"让暴风雨来的 ...

  3. 一个30岁男人的婚姻思考

    一个30岁男人的婚姻思考 今年30了,结婚4年多了.平心而论,我的婚姻生活很幸福,但是很多时候我似乎并不满足.因为,我妻子是一个没有正式工作的人,现在给别人打工,也不可能有什么发展.文凭也不高,估计再 ...

  4. 一个30岁男人的婚姻思考(转贴)

    一个30岁男人的婚姻思考 今年30了,结婚4年多了.平心而论,我的婚姻生活很幸福,但是很多时候我似乎并不满 足.因为,我妻子是一个没有正式工作的人,现在给别人打工,也不可能有什么发展.文凭 也不高,估 ...

  5. 一个结婚十年的男人总结36条,恋爱不是喜欢就够的

    引导语:"婚姻是爱情的坟墓."这句话是送给不善经营婚姻的人的.如果两个人都用心浇灌爱情之花,它能够长成一棵参天巨树,不仅让自己得到快乐和幸福,也把幸福的绿荫带给周围的人. 一个结婚 ...

  6. 俞敏洪语录:每一个失败的男人后面甚至不只一个女人

    1 .每一个失败的男人后面也有一个女人,甚至不止一个女人. 2 .在老妈面前,在父母亲面前下跪,这是不丢脸,但是千万别在老婆面前下跪. 3 .北大教书还有一个传统就是老师上课是不能点名的,这个传统不是 ...

  7. 一个30岁男人转型码农的平凡之路

    今天给大家带来的是一个转行的故事,一个30岁才开始学习编程的小白,资质平平,真正的零基础. 他的故事和那些大众喜欢的.夸张的.甚至虚假的华丽转身不同,一点也不精彩.一点也不鸡汤,平淡如水,但是能反映出 ...

  8. 一个成功的男人如何去追求身边的女人

    真正的爱情,只有在平等的条件下产生. 去追一个对你没感觉的女人,只会让她很烦,如果她碰巧很漂亮,有很多像你一样或者比你优秀的男人去追,那你一定不会有机会;即便上天给你了一个千载难逢的机会,并且还让你抓 ...

  9. 一个30岁男人的爱情婚姻思考(尽量不要在学习的时间看)

    今年30了,结婚4年多了.平心而论,我的婚姻生活很幸福,但是很多时候我似乎并不满足.因为,我妻子是一个没有正式工作的人,现在给别人打工, 也不可能有什么发展.文凭也不高,估计再过几年,也就会成为全职的 ...

最新文章

  1. php优先队列,PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
  2. Android快速阅读依赖的代码,Java Android快速阅读完整文件
  3. asp.net 中ListBox 显示 2 列
  4. 空集的cardinality是0
  5. 刘教授的Linux操作系统考试复习题
  6. hbase hdfs外部表_硬核干货长文!Hbase来了解一下不?
  7. 再见 iTunes!苹果macOS Catalina 10.15正式版更新
  8. Java基础篇:如何应用接口?
  9. long 雪花算法_深入分析mysql为什么不推荐使用uuid或者雪花id作为主键
  10. java学习class5
  11. 怎样从 Ubuntu 12.10 升级到 Ubuntu 13.04
  12. 英方软件:以“数据复制”为起点来赋能行业
  13. Git 奇淫技巧:Github ID 更名奇遇记
  14. 计算机内存五个区域,总结:计算机内存的五大区域
  15. 地图配色及网络地图比较
  16. air换电池 macbook_大加分!苹果 2018 新款 MacBook Air 电池可独立更换
  17. 算法竞赛入门经典 习题6-14
  18. Google map地图限制显示区域、拖拽范围
  19. ARM学习(12)基于arm架构的嵌入式操作系统理解
  20. 2017.08.25【NOIP提高组】模拟赛B组

热门文章

  1. log中文乱码 springboot_springboot + shiro 权限注解、统一异常处理、请求乱码解决
  2. bootstraptable导出excel独立使用_使用 EasyPOI 优雅导出Excel模板数据(含图片)
  3. Java 数据库进度条_java进度条
  4. ppt流程图字体太小_简单三步,用WPS轻松完成一个又大气又好看的流程图!
  5. java将图片上传数据库_〔技巧实例〕轻松实现将上传图片到数据库
  6. c 子类对象 访问父类对象受保护成员_java面向对象总结
  7. android studio 搭建环境,Android studio搭建xposed环境
  8. 进击的美少女!浙大学姐两年发14篇论文! 一作10篇,顶刊4篇!
  9. 上海交大25岁博士奶爸!6块腹肌,Science一作,人民日报都点赞了
  10. 美国教授描述未来学校,将颠覆现有教育模式