设为首页 收藏本站
查看: 1629|回复: 0

[经验分享] docker镜像的制作和容器的运行

[复制链接]

尚未签到

发表于 2018-5-28 07:22:48 | 显示全部楼层 |阅读模式
                 docker镜像的制作以及容器的运行
  前言:docker安装对Linux的内核要求3.8以上版本,可以通过uname -r查询linux内核另一个要求必须运行在64位的操作系统上;现在的docker可以运行在windows系统和Linux系统实现跨平台。
  介绍docker:
  Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。
  
  说白了,docker是一种用了新颖方式实现的轻量级虚拟机,类似于VM,但是在原理和应用上和VM的差别还是很大的.并且docker的专业叫法是应用容器(Application Container)
  
  为啥要用容器?
  应用容器是个啥样子呢,一个做好的应用容器长得就像一个装好了一组特定应用的虚拟机一样,比如我现在想用mysql,那我就找个装好了mysql的容器就可以了,然后运行起来,我就能使用mysql了。
  
  为啥不能直接安装一个mysql?安装一个SQL Server也可以啊,可是有的时候根据每个人电脑的不同,在安装的时候可能会报出各种各样的错误,万一你的机器中毒了,你的电脑挂了,你所有的服务都需要重新安装.但是有了docker,或者说有了容器就不同了,你就相当于有了一个可以运行起来的虚拟机,只要你能运行容器,mysql的配置就省了.而且如果你想换个电脑,直接把容器”端过来就可以使用容器里面的服务.
  
  
  1:(安装docker
  安装docker有两种方式:
  (1)使用centos版本提供的docker,现在是docker1.13版本
  (2)通过互联网docker的官方下载网站为http://www.hop5.in/yum/el6/hop5.repo最新版本为docker17版本,docker的最新版本和之前的版本跳度较大
  在这里使用的是centos提供的docker
  (3)docker的17版本分为两种dockerCE:社区版dockerEE:企业版
  2:docker镜像:
  注:容器的运行离不开镜像
  镜像的存在方式分为两种:一种是本地镜像;另一种是仓库镜像
  查看镜像的命令:docker  images
  3:容器:
  容器用来封装任意类型的app,将app变成标准化轻量级的应用程序。差容器的命令: docker  ps  -a
  优点:部署和容易扩展;效率高,内核级虚拟化,简单来说四个字:多快好省
  4:docker的结构:
  C/s结构; cdocker daemon 服务端   sdocker client
   DSC0000.png
  Docker daemon 一般在宿主主机后台运行。
  Docker client以系统命令的形式存在,用户用docker命令来跟docker daemon 交互。
  
  Docker 守护进程(Docker daemon)
  如上图所示,Docker 守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。
  Docker 客户端(Docker client)
  Docker 客户端,实际上是docker的二进制程序,是用户与 Docker 交互方式。它接收用户指令并且与背后的 Docker 守护进程通信。
  5:docker和传统的虚拟化技术对比:
   DSC0001.png
  Docker 在如下几个方面具有较大的优势。
  更快速的交付和部署
  对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。
  更高效的虚拟化
  Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
  更轻松的迁移和扩展
  Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
  更简单的管理
  使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
  对比传统虚拟机总结
  特性
  容器
  虚拟机
  启动
  秒级
  分钟级
  硬盘使用
  一般为MB
  一般为GB
  性能
  接近原生
  弱于
  系统支持量
  单机支持上千个容器

  创建镜像有两种方式:
  (1)docker commit 制作
  缺点:容易有黑盒操作;不便和用户之间共同分享
  (2)dockerfile创建images
  首先自定义目录之后编写dockerfile文件
  文件格式:
  # 注释说明
  FROM 基础镜像
  MAINTAINER 作者
  RUN 更新容器的指令
   :镜像最多为127层否则不会成功为了较少层,可以在更新容器的指令中执行多条指令使用&&符号链接
  6:安装docker服务:
  
  
  1.安装docker :yum -y install docker
   DSC0002.png
  2.启动docker :systemctl enable docker
   DSC0003.png
  3.导入基础镜像
   DSC0004.png
  方法一:
  4.将基础镜像加入镜像仓库: docker load --input centos7.tar
   DSC0005.png
  5.将基础镜像运行在容器中: docker run -i -t docker.io/centos:latest /bin/bash  // 环境变量,可以不写linux默认是此变量环境
   DSC0006.png
  6.在容器中作出修改,更新容器: yum -y install openssh-clients
   DSC0007.png
  7.退出容器后将修改后的容器做成镜像 :docker -m 信息 -a 制作人  容器的ID号  新的镜像名称
   DSC0008.png
  方法二:
  8.创建dockerfile文件
   DSC0009.png
  9.编写dockerfile文件注意文件格式
   DSC00010.png
  10.生成新的镜像:docker build -t=新的进项名称:标签  . 或者绝对路径
   DSC00011.png
   DSC00012.png
  
  11.导出镜像到本地文件: docker save -o 导出后的包.tar  镜像:标签
   DSC00013.png
  12.将本地文件载入镜像:docker load --input 以.tar结尾的镜像
   DSC00014.png
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481935-1-1.html 上篇帖子: (七)Docker网络和 overlay跨主机通讯 下篇帖子: Docker 基础命令介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表