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

[经验分享] Docker以及registry的入门学习安装

[复制链接]

尚未签到

发表于 2017-12-7 10:11:51 | 显示全部楼层 |阅读模式
一、前言
  如果你是数据中心或云计算IT圈子的人,我想你一定听过Docker,关于它们的新闻从未间断过。Docker的发展历程虽然算不上太长,但是自2014年6月Docker 1.0 正式发布,但是Docker确实越来越流行,因为Docker确实很强大。
二、docker是什么
  简单来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers);目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker则实现了一种应用程序级别的隔离;它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来,它可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
三、docker的优势
  l  快:运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等)都是以秒或毫秒为单位的。
  l  敏捷:像虚拟机一样敏捷,而且会更便宜。
  l  灵活:将应用和系统“容器化”,不添加额外的操作系统。
  l  轻量:你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。
  l  便宜:开源的,免费的,低成本的。由现代Linux内核支持并驱动。轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜
  l  生态系统:正在越来越受欢迎,只需要看一看Google的趋势就知道了。
四、一些docker的应用场景
  下面总结一些docker的应用场景,展现docker的优势:
  1.       应用打包
  在传统的基础设施环境下,为了保证所生成的软件包在其它机器上可正常安装且运行,一般需要在打包之前创建个干净的虚拟机,然后在这个干净的环境下安全各种依赖包,然后执行打包脚本。生成软件包以后,需要再创建一个干净的环境安装、运行这个软件包,来验证是否符合预期。这样做无疑耗时耗力,而且容易漏掉一些依赖关系。通过docker就能很好的解决打包问题,首先“干净的打包环境”很容易准备,docker官方提供的ubuntu、centos等系统镜像天生就能作为纯净无污染的打包环境使用,其次Dockerfile本身能起到文档固化的作用,只要写好Dockerfile,创建好打包镜像,以后就能无限次重复使用这个镜像进行打包。
  2.       多版本混合部署
  随着产品的不断更新换代,一台服务器上部署多个应用或者同一个应用的多个版本在企业内部非常常见。但一台服务器上部署同一个软件的多个版本,文件路径、端口等资源往往会发生冲突,造成多个版本无法共存的问题。如果用docker,这个问题将非常简单。由于每个容器都有自己独立的文件系统,所以根本不存在文件路径冲突的问题; 对于端口冲突问题,只需要在启动容器时指定不同的端口映射即可解决问题。
  3.       升级回滚
  一次升级,往往不仅仅是应用软件本身的升级,通过还会包含依赖项的升级。但新旧软件的依赖项很可能是不同的,甚至是有冲突的,所以在传统的环境下做回滚一般比较困难。如果使用docker,我们只需要每次应用软件升级时制作一个新的docker镜像,升级时先停掉旧的容器,然后把新的容器启动。需要回滚时,把新的容器停掉,旧的启动即可完成回滚,整个过程各在秒级完成,非常方便。
  4.       内部开发环境
  在容器技术出现之前,公司往往是通过为每个开发人员提供一台或者多台虚拟机来充当开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身的进程上了。docker容器没有任何CPU和内存上的额外开销,很适合用来提供公司内部的开发测试环境。而且由于docker镜像可以很方便的在公司内部分享,这对开发环境的规范性也有极大的帮助。
五、docker以及私库register的安装
  以下安装是以10.255.232.90(自己的的linux环境)为示例,这种安装方式主要是离线安装,可以先把所需的安装文件先down下来
  先安装docker:
  1.      cp文件
  cp  docker文件到/usr/bin
  cp  docker.socket,docker.service文件到/usr/lib/systemd/system
  2.      vi /etc/sysconfig/docker
  vi /etc/sysconfig/docker
  # /etc/sysconfig/docker
  #
  # Other arguments to pass to the docker daemon process
  # These will be parsed by the sysv initscript and appended
  # to the arguments list passed to docker -d
  other_args='--bip=172.17.42.1/16 --insecure-registry 10.255.232.90:1179 --storage-driver=devicemapper --storage-optdm.datadev=/dev/vg-docker/data --storage-opt dm.metadatadev=/dev/vg-docker/metadata'--bip 为安装docker0 的虚拟IP地址
  --insecure-registry 为私库IP地址和端口(非安全模式访问私库)
  --storage-driver=devicemapper--storage-opt dm.datadev=/dev/vg-docker/data --storage-optdm.metadatadev=/dev/vg-docker/metadata"
  dm.data和dm.medata为docker所需的lv目录。
  3.      启动Docker
  systemctl daemon-reload
  systemctl start docker
  systemctl enable docker
  4.      检查docker
  # systemctl status docker
  # docker version
  # docker info
  Docker安装完成后,安装私库:
  1.      cp 文件
  cp  docker_registry_2_delete.tar.gz到/tmp(私库镜像,可以自己下载)
  cp  start_docker_registry.sh 到/tmp(私库的docker启动脚本,自己写就行)
  2.      load registry并tag
  dockerload -i docker_registry_2_delete.tar.gz
  dockertag aad644fcd8cd registry:2
  3.      启动registy
  #catstart_docker_registry.sh
  docker run -d -p1179:1179 --restart=always --name registry -v /opt/docker_registry:/var/lib/registry registry:2
  根据安装环境需要,1179端口可做调整。
  #./start_docker_registry.sh
  4.      检查registry
  #docker ps
  CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
  9b9cd9dba84f        docker.io/registry:2   "/bin/registry /etc/d"   13 days ago         Up 13 days          0.0.0.0:1179->1179/tcp   registry
  总结:以上就是本人docker的学习安装过程,若有错误或者纰漏,欢迎批评指正。

运维网声明 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-421604-1-1.html 上篇帖子: Docker最佳实践-部署LNMP环境 下篇帖子: 腾讯云,搭建Docker环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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