前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker基本概念

Docker基本概念

作者头像
louiezhou001
发布2019-10-08 15:39:52
4000
发布2019-10-08 15:39:52
举报
文章被收录于专栏:测试工程师成长之道

Docker的基本概念

Docker的产生背景

2010年,几个大胡子年轻人在旧金山成立了一家PaaS(Platform as a Service)平台的公司,起名为「dotCloud」. dotCloud 把需要花费大量时间的手工工作和重复劳动抽象成组件和服务,并放到了云端,另外,它还提供了各种监控、告警和控制功能,方便开发者管理和监控自己的产品.

Docker 迅速成长为云计算相关领域最受欢迎的开源项目,没有之一,Amazon EC2、Google GAE、IBM BlueCloud、Microsoft Azure、Red Hat 和 VMware 分别表示已经支持 Docker 技术或准备支持。据说,有 Linux 的地方,就可以运行 Docker.

在开源社区github, OSChina,码云等搜索docker, 你会发现不计其数的内容映入眼帘.Docker是个划时代的开源项目, 它彻底释放了计算虚拟化的威力, 极大的提高了应用的维护效率,降低了云计算应用开发成本,让应用的部署, 测试和分发变得前所未有的高效和轻松.无论是应用开发者, 运维, 测试还是其他信息从业人员,都有必要掌握Docker, 节约有限的时间.

docker使用GO语言开发, Docker容器管理引擎大大降低了容器技术的使用门槛,轻量级,可移植,虚拟化,语言无关,写了程序扔上去做成镜像可以随处部署和运行,开发、测试和生产环境彻底统一了,还能进行资源管控和虚拟化。程序员们流着口水惊呼,太方便了.

三个容易混淆的基本概念

Container(容器), Image(镜像), Repository(仓库)

仓库: 是集中存放镜像的地方, 一个注册服务器上可以有很多的仓库,一个仓库中有很多的镜像, 使用不同tag区分

镜像: 类似一个系统文件模板,也可以说是用户空间,镜像被构建完成之后是不可以被修改的, 因此是只读权限

容器: 是镜像的实例, 容器可以运行,启动,停止,删除, 每个容器都是隔离的安全应用平台. 和面向对象类似, 可以把镜像想象为类, 把容器想象成为实例化的对象.

镜像实际上有一层层文件系统组成, 镜像基于Dockerfile构建,Dockerfile是一个描述文件,里面包含了若干条命令, 每条命令都会对基础文件系统创建新的层次结构.

Docker提供了一个简单的机制来创建镜像或者更新现有镜像, 我们甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用.这个下载的地方就叫公有docker仓库.

Docker 的默认仓库Docker Hub是公共仓库, 公司或个人可以创建自己的私有仓库.

仓库操作类似Git, 当用户创建自己的镜像之后可以使用Push上传到公有或者私有仓库, 下次在另外一台机上使用这个镜像的时候, 只需要从仓库Pull下来既可以了.

在没有docker的时代, 如果要在几天内部署几十台服务器, 这对部署环境人员来说是一件非常痛苦的事情, 而且每台服务器的环境还不一定相同,会出现各种意想不到的问题, 最后部署到头皮发麻. 使用docker的话, 只需要将程序打包到镜像, 要多少台服务, 就给你多少个容器, 内容完全一致, 极大的提高了部署效率.

容器从镜像启动的时候, Docker会在镜像的最上层创建一个可写层,镜像本身是只读的, 保持不变,所以真正运行的是docker 实例即容器.

微服务

Docker的细粒度松耦合让我们用一个Docker容器装载一个功能场景, 也就是按照功能进行分类, 每个docker里面装载一个服务或者应用,一个服务器上可以运行多个Docker 容器, 或者多个Docker分散在多服务器上运行,整个架构可以按照业务逻辑的规划,以细粒度的方式分散在各个docker容器, 并根据HTTP REST api的方式进行调用整合.

隔离应用

有很多原因让我们选择在一台机器上运行不同的应用, 比如提高开发效率.

我们经常考虑两点, 一是因为降低企业成本而进行服务器的整合, 二是将一个整体式的应用拆分成松耦合的单个服务(高内聚低耦合是我们经常要思考的问题).

Docker隔离应用的能力使得Docker可以整合多个服务器来降低成本,由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存, Docker可以比虚拟机提供更好的服务器整合解决方案.

Docker is open Platform for developers and sysadmins to build, ship, and run distributed applications whether on laptops, data center VMs, or the cloud.

Build once, Run anywhere 非常生动形象的描述了docker.

参考:

https://www.oschina.net/news/57838/docker-dotcloud

Story:

巴甫洛夫只说了八个字:"要热诚而且慢慢来", "热诚", 有持久的兴趣才能坚持到成功。"慢慢来",不要急于求成,做自己力所能及的事情,然后不断提高自己;不要妄想一步登天,要为自己定一个切实可行的目标,有挑战又能达到,不断追求,走向成功。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试工程师成长之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档