docker笔记1--了解docker

1 docker是什么

(1)背景

  docker是基于go语言实现的开源容器项目。目标是实现"build ship and run any app,anywhere",通过对应用的封装,分发,部署,运行生命周期进行管理,达到应用组件级别的一次封装,到处运行。也就是说方便测试开发运维各个部门能够在同样的环境干活,提高效率,尽量较少因为环境问题降低交付效率。

(2) 怎么演化而来

  它是从linux容器LXC技术而来,docker提供了各种容器管理的工具,引入分层文件系统构建和高校的镜像机制,降低迁移的难度。可以理解为Docker容器是一种轻量级的沙盒,每个容器里面运行一个应用,不同的容器相互隔离,容器之间呢可以通过网络通信。

2 为什么使用docker

(1)docker的好处

  比如咋们需要创建一个网站,试图采用LAMP的方式。首先需要安装Apache,mysql,php以及依赖的环境,各种的调试准备,一旦服务器需要迁移怎么搞,再装一次?这样子是不是太浪费时间了。docker提供了比较聪明的方式,通过容器来打包应用,解耦应用和运行平台。

(2)docker在开发和运维的优势

  • 更快速的交付和部署
  • 更高效的资源利用
  • 运行容器不需要额外的虚拟化管理程序支持。
  • 更轻松的迁移和扩展     

    docker容器几乎可以在任意的平台运行。包括物理机,虚拟机,公有云。。

  • 更简单的更新管理

    使用dockerfile实现自动化而且高校的容器管理

(3)docker与虚拟机的比较

  • docker容器更快
  • 启动和停止在秒级实现
  • docker容器对系统资源的需求更少
  • 一台主机可以同时运行数千个容器

  docker通过类似git设计理念来操作,方便用户获取、分发和更新应用镜像,存储复用等

  docker通过dockerfile支持灵活的自动化创建和部署机制,提供工作机制。

 3 docker应用场景

(1)作为云主机使用

相比虚拟机来说,容器使用的是一系列非常轻量级的虚拟化技术,使得其启动、部署、升级跟管理进程一样迅速,用起来灵活又感觉跟虚拟机一样没什么区别,所以有些人直接使用Docker的Ubuntu等镜像创建容器,当作轻量的虚拟机来使用。

(2)作为服务应用

Docker容器最重要价值在于提供一整套平台无关的标准化技术,简化服务的部署、升级、维护,只要把需要运维的各种服务打包成标准的集装箱,就可以在任何能运行docker的环境下跑起来,达到开箱即用的效果,这个特点才是Docker容器风靡全球的根本原因。下

  • web应用服务

典型的后台开发模型,前端的java web使用docker容器,先将Java运行环境、web服务器直接打包成一个通用的基础docker镜像,之后再将自定义应用代码或编译程序包加入到该基础镜像中就能产生一个新的应用镜像,最后通过docker服务以容器的方式启动web服务。

  • 持续集成持续部署

互联网行业倡导敏捷开发,持续集成部署CI/CD便是最典型的开发模式。使用docker容器云平台,就能实现从代码编写完成推送到git/svn后,自动触发后端CaaS平台将代码下载、编译并构建成测试docker镜像,再替换测试环境容器服务,自动在Jenkins或者Hudson中运行单元/集成测试,最后测试通过后,马上就能自动将新版本镜像更新到线上,完成服务升级。整个过程全自动化,一气呵成,最大程度地简化了运维成本,而且保证线上、线下环境完全一致,而且线上服务版本与git/svn发布分支也实现统一。

原文地址:https://www.cnblogs.com/lanjianhappy/p/11773142.html