什么是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协议 ...
随机推荐
- fiddler常识汇总
Fiddler 抓包工具总结 名称 含义 # 抓取HTTP Request的顺序,从1开始,以此递增 Result HTTP状态码 Protocol 请求使用的协议,如HTTP/HTTPS/FTP ...
- “Hello World!”团队第六周第七次会议
博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.checkout&push代码 一.会议时间 2017年11月23日 ...
- 20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结
20172319 2018.03.27-04.05 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 编写类 类与对象的回顾:对象是有状态的,状态由对象的属性值确定.属性由类中 ...
- 20162328蔡文琛 大二 十二周课上测试 hash
- [usaco]2013-jan Liars and Truth Tellers 真假奶牛
Description 约翰有N头奶牛,有一部分奶牛是真话奶牛,它们只说真话,而剩下的是假话奶牛,只说假话.有一天,约翰从奶牛的闲谈中陆续得到了M句话,第i句话出自第Xi头奶牛,它会告诉约翰第Yi头是 ...
- 结对项目作业报告——四则运算web项目
成员:顾思宇2016011993 程羚2016012050 1.仓库地址:https://git.coding.net/DandelionClaw/WEB_Calculator.git 注: 本项 ...
- J2EE 13种技术规范
J2EE平台由一整套服务(种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述): 1.JDBC(Java Database Connectivity): JDBC API为访问不同的数据 ...
- T4模板_入门
T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记 更详细的资料参见: MSDN: http://msdn.microsoft.com/zh-cn/li ...
- 0523 Scrum项目6.0
0523 团队项目6.0 一,组员任务完成情况 首页设计初步完成但是需要优化界面,只能简单的输出信息和在首页进行登录.界面极其简单.使用了Javabean的设计模式,进行改进,使得页面的里的代码看起来 ...
- 性能分析_linux服务器CPU_中断
中断 1. 指标范围 1.1 Interrupt rate 应该与cpu利用率结合分析,如果cpu利用率在合理范围内,大量的中断也是可以接受的.一个巨大的中断值,同时伴随着缓慢的系统性能表现,指示 ...