什么是Docker并且它为什么这么受欢迎
什么是Docker (why it's so hot than hot)
Docker是一个使用容器来方便快捷的创建,部署,运行程序的工具,容器允许开发人员将应用程序的一切打包(镜像),例如库和其他的依赖项,并可以将这个包(镜像)发布出去。通过这样做,开发人员可以尽情将应用程序在其他linux 机器上运行,并且不用去考虑机器的各种配置的不同。
另一方面,Docker有一点点像虚拟机,但是又不像虚拟机,相比于虚拟机,Docker不需要创建整个虚拟系统,Docker允许应用程序使用和当前所运行的操作系统相同的linux内核,也没有什么硬件虚拟。并且仅仅需要应用程序携带主机上没有的东西,这大大提升了性能并且减少了应用程序的大小
最重要的是,Docker是一个开源项目,这意味着每一个人都可以给docker做贡献,并且可以去根据自己的需求扩展docker.
总而言之,Docker是一个来帮我们抹平操作系统的配置、环境的差异,让我们的程序随心所欲的在各个系统快速跑起来的工具。
Docker是给哪些人使用的呢?
Docker是一个让开发人员和运维人员都会受益的一个工具,它已经成为了许多开发和运维人员的工具链中的一部分了。对于开发人员而言,这意味着我们不必再去操心程序最终运行的操作系统的环境等等各种配置了,我们只需要安心的专心的去写代码就行了。同时我们可以使用Docker给我们提供的一千多种的镜像,并且镜像中给我们的程序提供了一部分基础部分,这大大提升了我们的开发时构建项目的效率。对于运维同学而言,Docker提供了灵活性,并且由于docker的体积小、开销小。运维也可能不需要去维护特别多的系统了。
所以说,开发人员和运维人员都可以来使用Docker。
上述部分翻译自 https://opensource.com/resources/what-docker
Docker中的重要组成部分
Docker中包括了三个基本概念
- 镜像
- 容器
- 仓库
镜像:
镜像为容器的基础,镜像就是一堆只读层的视角
容器:
容器的定义和镜像差不多,容器也是一堆层的唯一视角,不同的是,容器最上边的一层是可读可写的。这里需要注意的是,容器并不是指运行态的容器,容器=镜像+读写层
而与此对应的运行态的容器,就是独立的进程空间+运行的进程+可读写层,运行的进程对于文件进行的操作(增加,删除,修改等)针对的是可读写层,并且这个可读写层也是封闭的。
仓库:
仓库是存放镜像的场所
对于Docker的这三个基本概念,后续在对应的章节详解。
文中如有错误,还请斧正!
什么是Docker并且它为什么这么受欢迎的更多相关文章
- Docker Architecture、Docker Usage
目录 . 引言 - 为什么要有Docker技术 . Docker简介 . Docker安装.部署.使用 . Docker安全 . Docker底层实现 . Docker网络配置 . Dockerfil ...
- 快速理解Docker - 容器级虚拟化解决方案
是什么 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案 拿现实世界中货物的运输作类比, 为了解决各种型号规格尺寸的货物在各种运输工具 ...
- 关于Docker 常用命令
Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...
- Docker 底层实现
基本架构 Docker 采用了 C/S架构,包括客户端和服务端. Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). 客户端和服务端既可以运行在一个机器 ...
- Docker基本架构
Docker 采用了 C/S架构,包括客户端和服务端. Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). 客户端和服务端既可以运行在一个机器上,也可通 ...
- .NET Core多平台开发体验[4]: Docker
对于一个 .NET开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级到下一代. ...
- 通过 Ansible 安装 Docker
本文的演示环境为 ubuntu 16.04. 先在 Ansible Galaxy 搜索 docker,由 geerlingguy 贡献的 docker role 是目前最受欢迎的: 通过 ansibl ...
- Docker 从入门到放弃(一)安装
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任 ...
- Docker 介绍及安装
Docker介绍 Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). Docker基于go语言并遵从Apache2.0协议 ...
随机推荐
- 更换 CentOS 7 的下载源为阿里云
http://blog.csdn.net/realghost/article/details/45949759
- 第一章 HTML介绍
1.1 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容就 ...
- Scrum立会报告+燃尽图(十二月七日总第三十八次):功能测试
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284 项目地址:https://git.coding.net/zhang ...
- 作业要求20181204-7 Final阶段第1周/共1周 Scrum立会报告+燃尽图 02
作业要求参见https://edu.cnblogs.com/campus/nenu/2018fall/homework/2481 版本控制地址https://git.coding.net/lglr20 ...
- 第二阶段Sprint冲刺会议3
进展:讨论视频录制的具体功能,查看有关资料,开始着手编写有关代码.
- gogoing软件NABCD
N,need 需求:gogoing项目目前打算做得是一个基于石家庄铁道大学在校大学生对于短期节假日出行旅游的指南.最关键的定义为“穷游”.“穷”则体现在以小的花销去实现最完美的旅游方式.我们的gogo ...
- 关于mybatis的思考(2)——mybatis映射文件的深入理解
1.配置文件 mybatis进行持久化操作是以SqlSessionFactory对象为基础的,这个对象是整个数据库映射关系经过编译后的内存镜像. InputStream inputStream = R ...
- 团队作业之四则运算GUI展示
一.项目Coding.net原码仓库地址:https://git.coding.net/caoying/Teamwork.git 队员: 卢琪:2016011986 曹滢:2016012102 二.P ...
- 最近JavaScript的一些收获
开发习惯的上的收获 1,开发过程中,要让整个逻辑展示在一个函数中,中间部分则做可以考虑公用策略优化 2,开发完成至少有三个角度进行测试,正面方面和中立 开发技巧上面的收获 1,驼峰转为‘-’以及‘-’ ...
- Robot Framework 教程 (6) - 使用条件表达式
本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...