什么是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并且它为什么这么受欢迎的更多相关文章

  1. Docker Architecture、Docker Usage

    目录 . 引言 - 为什么要有Docker技术 . Docker简介 . Docker安装.部署.使用 . Docker安全 . Docker底层实现 . Docker网络配置 . Dockerfil ...

  2. 快速理解Docker - 容器级虚拟化解决方案

    是什么 简单的说Docker是一个构建在LXC之上的,基于进程容器(Processcontainer)的轻量级VM解决方案 拿现实世界中货物的运输作类比, 为了解决各种型号规格尺寸的货物在各种运输工具 ...

  3. 关于Docker 常用命令

    Docker 常用命令 分类列一下常用的CLI命令 仓库相关 search/ pull / push / login etc. 例:docker pull ubuntu 从仓库下载ubuntuimag ...

  4. Docker 底层实现

    基本架构 Docker 采用了 C/S架构,包括客户端和服务端. Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). 客户端和服务端既可以运行在一个机器 ...

  5. Docker基本架构

    Docker 采用了 C/S架构,包括客户端和服务端. Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). 客户端和服务端既可以运行在一个机器上,也可通 ...

  6. .NET Core多平台开发体验[4]: Docker

    对于一个 .NET开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级到下一代. ...

  7. 通过 Ansible 安装 Docker

    本文的演示环境为 ubuntu 16.04. 先在 Ansible Galaxy 搜索 docker,由 geerlingguy 贡献的 docker role 是目前最受欢迎的: 通过 ansibl ...

  8. Docker 从入门到放弃(一)安装

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任 ...

  9. Docker 介绍及安装

    Docker介绍 Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建.运行.分发容器). Docker基于go语言并遵从Apache2.0协议 ...

随机推荐

  1. (第十一周)约跑APP测试报告

    项目名称:约跑App 用户需求规格说明书URL:http://www.cnblogs.com/liquan/p/6071804.html 组长博客URL:http://www.cnblogs.com/ ...

  2. web07-jdbcBookStore

    新建web项目,名字 新建servlet,名字CreateDBServlet 内容为: ---- 配置web.xml 数据库的URL.driveclass.user.passWord都写在web.xm ...

  3. iOS自学-混合编程

    OC调用swift,引入头文件 #improt "工程名字-swift.h" swift调用OC,在桥梁文件里面引入OC文件 的头文件 尽情混合编程吧...

  4. Task 6.2冲刺会议九 /2015-5-22

    今天把之前的跳转问题加以改正并加以优化.遇到的主要问题是跳转的时后时间有点长,以为没有成功.之后查资料说是端口没有及时释放,导致了程序的滞缓.明天要继续把程序的界面进行优化.

  5. "私人助手"NABCD分析

    ---恢复内容开始--- 团队开发项目“私人助手”需求分析NABCD模型: (1)N(Need需求):“私人助手”解决了几类人遇到非常多的事情,非常繁琐,“私人助手”为用户解决这个问题,让用户的工作更 ...

  6. Internet 校验和的数学性质

    Internet 校验和(Checksum)仅计算头部的正确性,这一点很重要,这意味着 IP 协议不检查 IPv4 packet 有效载荷部分的数据正确性.为了保证有效载荷部分的正常传输,其他协议必须 ...

  7. 效能分析——词频统计的java实现方法的第一次改进

    java效能分析可以使用JProfiler 词频统计处理的文件为WarAndPeace,大小3282KB约3.3MB,输出结果到文件 在程序本身内开始和结束分别加入时间戳,差值平均为480-490ms ...

  8. 获取SQL Server中连接的客户端IP地址[转]

    有时候需要获取连接到SQL Server服务器上的客户端IP地址,用什么办法呢? SELECT *FROM sys.dm_exec_connections WHERE session_id = @@S ...

  9. mac下面安装redis

    本文只记录了在homebrew下面安装redis的过程,过程比较简单,作为自己以后翻阅用吧, 首先安装homebrew,打开终端,在终端下面允许下面的命令(不要用root用户): /usr/bin/r ...

  10. ByValue和ByPropertyName的区别

    ByValue 以Get-Service命令为例,它的帮助文件中关于-Name参数是这样解释的: 1. "WinRM" | Get-Service 2. "Trusted ...