试讲DOCKER专用

内容概要:

  1. DOCKER简介
  2. 为什么要用DOCKER
  3. DOCKER的应用场景
  4. DOCKER基础

一 DOCKER简介

Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师能够以统一的方式跨平台地发布应用,并且在几乎没有额外开销的情况下提供资源隔离的应用运行环境。由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得了诸多IT厂商的青睐,其中更是包括 Google、Microsoft、VMware等业界领导者。同时,Docker在开发者社区也是一石激起千层浪,许多技术人员纷纷开始关注、学习和使用Docker。许多企业,尤其是互联网企业,也在不断加大对Docker的投入,大有掀起一场容器革命之势。

Docker从2013年诞生,短短两年时间就在全球IT技术圈内迅速走红,实乃技术圈内不可忽视的一阵飓风。然而,Docker是什么,Docker带来了什么?

Docker官方如此描述Docker:“Build, Ship, Run. An open platform for distributed applications for developers and sysadmins”。换言之,Docker为开发者与系统管理者提供了分布式应用的开放平台,从而可以便捷地构建、迁移与运行分布式应用。

多年来,IT行业中开发与运维一直是两个界限清晰的词。开发工程师专门从事软件的开发工作,最终交付软件代码;运维工程师则部署前者交付的软件,并接管软件的运行与管理。然而,在长时间的实践过程中,开发与运维分离的方式难免存在弊病,两者职责的过分清晰导致软件效率的降低。随着分布式系统的流行,系统规模越来越大,软件越来越复杂,系统环境配置暴露的问题层出不穷。究其缘由,还是因为开发人员缺少软件运行环境的认知,而运维人员对软件逻辑所知甚少。在这样的背景下,DevOps横空出世,提倡开发与运维不可分割,协调并进。

Docker无疑是DevOps大潮中最具实践价值的不二法宝。Docker从Linux内核的角度出发,属于轻量级虚拟化技术,有能力秒级提供应用隔离环境,完成云计算时代分布式应用的第一需求“隔离”。另外,Docker的镜像技术利用联合文件系统的优势,自下至上打包系统软件、系统环境以及软件程序,将运行环境与应用程序灵活地结合,快速运行Docker化的应用程序。同时,可读性极强的Dockerfile,极大地简化镜像的复杂性,并为镜像的转移与重新构建提供了可能性。

Docker提供轻便的资源分配方式,解决应用运行与系统环境的依赖,弥合应用跨节点迁移的鸿沟,种种特性都表明Docker几乎就是为“云计算”而生的。如今,Docker社区不断扩大并健康发展,多家国际IT巨头也纷纷宣布支持Docker,这一切更是让全球IT人士对Docker的未来充满信心。

归于一句话:

  docker是个容器,就是将你的应用跑在物理机之上,给你扩容出来的一些资源。那么他与kvm有什么不同呢?其实就是在于分配资源的形式不同,kvm是基于硬件资源的分配实际上是物理机上运行虚拟机再开应用的一个过程,而docker是基于kernel内存级别的资源隔离。

二为什么要用DOCKER

三DOCKER的应用场景

场景一:节省项目环境部署时间

1.单项目打包

每次部署项目到测试、生产等环境,都要部署一大堆依赖的软件、工具,而且部署期间出现问题几率很大,不经意就花费了很长时间。

Docker主要理念就是环境打包部署,可在任意Docker Engine运行。前期我们只需要将每个项目环境打包到镜像,push到镜像仓库,当有需要部署这个项目时,直接pull镜像启动容器,这个项目就可以访问了!一次构建多次部署,一劳永逸。

2.整套项目打包

公司有一项这样的业务:有一个产品可以整套部署到客户那里,以往都是派一名实施工程师到客户那部署。如果用了Docker,我们可以前期将这套项目封装打包起来,实现一键部署,分分钟钟搞定,就不需要再派人过去了。比如官方的Docker Compose编排工具。

3.新开源技术试用

有时,我们想调研一些开源项目,我们可以直接从公共镜像仓库pull项目官方做好镜像启动容器即可。

场景二:环境一致性

开发工程师在Windows系统上开发项目,测试、生产环境操作系统都是Linux系统,这就产生了环境不一致的情况:项目在开发电脑本地运行没问题,到了测试或生产环境就运行不起来,解决这问题最好方式就是这三处环境保持一致。软件版本、操作系统、物理机、云主机......试想下,能做到吗?

Docker将项目环境打包成镜像,可以放在在任何Docker Engine上。此时Docker就是我们这些项目的基石,Docker可移植性,保持运行状态一致性,可想而知,是否更容易解决问题呢?

场景三:持续集成

一个项目版本快速迭代的测试场景,需要一个合理的CI(持续集成)/CD(持续部署)环境支撑。CI/CD是一个周期性自动化项目测试流程,包括构建、部署、测试、发布等工作,很少需要人工干预。

项目测试流程大致如下图:

Docker结合Jenkins构建持续集成环境大致如下图:

Docker在上面这个图的作用是项目镜像构建和快速部署,打通测试环境与生产环境,高度保持多个环境之间一致性。

场景四:微服务

微服务是近几年来IT圈内谈论比较多的一个名词,意义也很简单:尽可能细粒度拆分业务程序架构,由多个独立服务组成业务系统。

Docker的容器设计原则:一个容器一个服务,容器之间相互隔离,不妨试想一下,如果容器作为这些独立服务的部署单元,是不是有点恰到好处呢?

场景五:弹性伸缩

说到弹性伸缩,通常是集群模式下存在。像AWS AutoScaling,可以自定义资源阈值,SLB自动添加EC2云主机,应对业务访问量突发情况。

当适用Docker技术以后,这种弹性伸缩的单元就是云主机之上的容器了。

容器集群化管理已经有成熟的解决方案,比如:官方的Swarm,谷歌的K8S

由于Docker容器快速启动特性,可以很快速的启动几十个、上百个容器来提供更多并发和资源利用率(如果宿主机资源不够,还需要加主机到集群中)。

四DOCKER基础

https://www.cnblogs.com/jokerbj/p/9269653.html

原文地址:https://www.cnblogs.com/jokerbj/p/10646252.html

时间: 2024-10-11 04:16:35

试讲DOCKER专用的相关文章

Docker 专用术语

This section lists terms and definitions you should be familiar with before getting deeper into Docker. For further definitions, see the extensiveglossary provided by Docker . Container image: A package with all the dependencies and information neede

无需安装 vsftpd , 直接使用 FTP 来管理 docker 容器中的文件

无图无真相,先放个效果图: 背景 使用 docker 来跑一些服务很方便,但是有的时候想管理容器里面的文件却很麻烦 -- 一般常规做法有3种: 通过数据卷或数据卷容器的方式 启动容器的时候时候启动 vsftpd 或者 sshd 等服务,并开启端口映射,然后通过 ftp/sftp 连上去管理 进入容器的终端,通过命令行管理 但是这些做法都有一定的缺陷和不便: 1和2都是需要在启动容器的时候做一些配置,如果容器已经启动了就歇菜了.而且2需要额外的端口映射,占用主机的端口.3的做法比较 geek ,而

Windows Docker和Windows Nano Server来啦!

今天盆盆起了一个大早,6点不到就醒了,打开邮箱一看,好家伙,被Windows Docker的大新闻给刷屏了! 首先先来说说看Nano Server. 何为Nano Server? 盆盆的理解,就是专门为Windows Azure和Docker而生的Cloud OS!从开发者的角度来看,Docker其实是一种类似于PaaS的技术,对外展示的是打包好的应用,而不像传统的虚拟化那样需要对操作系统进行维护. 对于Docker而言,所有的容器都是共享内核的,这个内核自然越小越好.对于Linux而言,大家都

通过Jenkins与Docker构建CI/CD基础架构

###前言 提到容器平台,最早接触的便是LXC(Linux Container),是2010年刚刚接触虚拟化平台的时候,当时开源解决方案是xen的天下(后来KVM才后来者居上),且性能各方面都不弱,价值当时还不是移动互联网时代,业务量远远没有那么大,大部分公司都是物理机部署应用,用虚拟化平台的公司也是寥寥无几,可想而知,没有业务,没有场景,那就没有技术的用武之地了,所以,LXC生而伟大而用不逢时,Docker之所以能够青出于蓝而胜于蓝,取得如此大的成功的原因还是归咎于移动互联网带来的流量大爆炸,

Windows Server 2016技术预览

Windows Server 2016是微软将于2016年9月份发布的最新服务器操作系统.目前微软官方发布了许多Windows Server 2016新的功能和特性,下面我们来简单看下: 主要内容 预览版界面 系统需求及安装 服务器管理变化 新特性及变化 预览版界面 服务器界面,沉浸而不渲染 登录界面,色调变得活泼起来,用户图像由原先Windows2012的方块变成圆形 继续 进入系统,乍一看,以为是WIN10呢,注意右下角 如此做法,似乎在传递win10的最佳服务器系统就是他了 开始菜单,Al

hyper-v新内容

摘自http://geek.csdn.net/news/detail/30249 继开源.NET,微软推出Hyper-V Container技术及Nano Server Hyper-V Server 是一款专用的单独产品,其中包含虚拟机监控程序.Windows Server 驱动程序模型.虚拟化功能以及支持组件(如故障转移群集),但不包含 Windows Server 操作系统所具有的强大功能和角色集.因此,Hyper-V Server 占用的空间和开销非常小. 如今,Container已经成为

原创:Docker在云家政的应用 谢绝复制粘贴内容

我们公司目前大规模使用了Docker,目前除了数据库应用,其他所有应用都在Docker容器内运行,下面我就Docker在公司的应用做一些分享.. 首先我介绍一下公司的背景,公司属于中小型创业公司,服务器数量不多,但是为了解决一些问题,我们引入了现在比较火的Docker技术. 看一下我们在没用Docker之前遇到的问题: 1.线上环境和测试环境不完全一致,导致测试好的功能上线后会出现一些BUG. 2.部署新项目步骤繁琐,批量部署运行环境后,需要根据每个项目不同的情况,手动修改配置参数. 3.新项目

Docker NAT iptables实现 及网络配置

Docker NAT iptables实现 默认情况下,容器可以主动访问到外部网络的连接,但是外部网络无法访问到容器 容器访问外部实现 容器所有到外部网络的连接,源地址都会被 NAT 成本地系统的 IP 地址(即docker0地址).这是使用 iptables 的源地址伪装操作实现的 查看主机的 NAT 规则 [[email protected] sshd_dockerfile]# iptables -t nat -vnL Chain POSTROUTING (policy ACCEPT 0 p

docker 17 CE EE install

先决条件 Docker EE 要安装Docker Enterprise Edition(Docker EE),您需要知道与您的试用或订阅相关联的Docker EE存储库URL.要获取此信息: 转到https://store.docker.com/?overlay=subscriptions. 在CentOS的Docker Enterprise Edition中选择" 获取详细信息 / 安装说明 " 部分. 从标记为复制并粘贴此URL的字段 复制URL以下载您的版本. 在Docker E