原文:Docker---(1)Docker 简介

版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/weixin_39800144/article/details/79145061

1.Docker是什么?

  1. Docker是一个开源的引擎,基于 Go 语言 并遵从Apache2.0协议开源。可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
  2. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  3. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
  4. Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
  5. 开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 

2.Docker使用场景


  1. Web 应用的自动化打包和发布。
  2. 自动化测试和持续集成、发布。
  3. 在服务型环境中部署和调整数据库或其他的后台应用。
  4. 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。


3.Docker的架构


Docker总体架构为c/s架构,模块之间松耦合,包含了Client, Daemon, Registry, Graph, Driver, Libcontainer以及Docker Container

4.Docker优势


对开发人员来说:Docker提供了简单快速的隔离环境,无需再为配置环境操心,让程序跑到哪都一样;

对运维人员来说:Docker可以快速构建出一整套无状态分布式基础设施,使得运维工作可以通过程序化的脚本来完成;

对业务人员来说:从每月或每周才能发布的新版本到只需1小时就能发布完毕,迅速满足用户新需求;

标准化应用发布:Docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;

节约时间:快速部署和启动,VM启动一般是分钟级,Docker容器启动是秒级;

方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;

节约成本:以前一个虚拟机至少需要几个G的磁盘空间,Docker容器可以减少到MB级;

方便持续集成:通过与代码进行关联使持续集成非常方便;

可以作为集群系统的轻量主机或节点:在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。

5.Docker常见概念


镜像(image)

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户可以下载仓库或者他人的镜像,也可以上传自己的镜像。

容器(container)

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。

6.Docker的主要特性

/ 物理集装箱 Docker
无关内容 集装箱几乎支持所有类型的货物 能压缩任何负载和依赖
无关硬件 标准化的尺寸和交接使得集装箱可以通过货船火车货车运输,用起重机交接不需要换一个容器或者打开集装箱 使用操作系统的基本体(像LXC)能一致的跑在几乎任何硬件下,不需要对硬件做额外的修改
内容隔离和相互作用 不需要关心铁锹会砸坏香蕉。集装箱可以一起堆放一起运输 资源、网络和内容的独立避免了依赖问题
自动化 标准化使得自动化装载卸货和移动变得方便 使用标准的操作指令去跑start/stop/commit/search等等。对运营人员:CI、CD、自动化测试、hybrid clouds
高效 不需要打开不需要改动什么,高效的点对点的方式 轻量级,几乎没有启动的消耗,高效的移植性和操控性
职责分离 发货人只需要关心箱子内部的事情,托运人只需要关心箱子外部的东西 开发者只需要关心代码层面,运营人员只需要关心服务器的基础环境

Docker---(1)Docker 简介的更多相关文章

  1. Docker学习—Docker简介

    什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...

  2. 【Docker Compose】简介与安装

    1.简介 Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 Compose 中你可以使用 YAML 文件来配置你的应用服务.然后,只需要一个简单的命令,就可以创建并启动你配置 ...

  3. 【云原生 · Docker】Docker简介及基本组件

    [云原生·Docker]Docker简介及基本组件 1.Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  4. (转) Docker EE/Docker CE简介与版本规划

    随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise ...

  5. docker入门——镜像简介

    什么是docker镜像 Docker镜像是由文件系统叠加而成. 最底端是一个引导文件系统,即bootfs: 这很像典型的Linux/Unix的引导文件系统.Docker用户几乎永远不会和引导文件系统有 ...

  6. Docker EE/Docker CE简介与版本规划

    随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise ...

  7. docker学习笔记-简介

    零.什么是Docker 是一个基于GO语言开发的开源 应用容器: 开发者可以打包应用和相关包,到一个 轻量级 . 可移植 的 容器 中,并且可以发布到 任何机器 ,实现 虚拟化: 完全使用 沙箱机制, ...

  8. Docker Swarm Mode简介与核心概念

    什么是Docker Swarm Docker Swarm是Docker官方的一种容器编排方案,用于管理跨主机的Docker容器,可以快速对指定服务进行水平扩展.部署.删除 一个Docker Swarm ...

  9. 「快学Docker」Docker简介、安装和Hello World实现

    前言 Docker已经成为了一门炙手可热的技术,每个程序员(特别是后端程序员)都应该学习下Docker这门技术. Docker是什么 来自官网的定义:Docker是以Docker容器为资源分割和调度的 ...

  10. 【docker】docker安装和使用

    一.docker简介: docker是容器技术的一个代表,而容器技术是将程序打包和隔离的一种技术,其实它并不是一个新技术,之前在linux内核中早已存在,真正被大众所用所了解是因为docker的出现. ...

随机推荐

  1. jmind-redis一个redis的nio客户端

    Redis是一个基于key/value的系统.Redis目前最新版本是2.2.4,用着很不错,不过java版本的客户端比较的不给力,目前redis 客户端jedis 是基于io 的socket . 而 ...

  2. NStimer 被堵塞

    我们在界面上滚动一个scrollview,那么我们会发如今停止滚动前,会发现NSTimer未被运行.就好像scrollView在滚动的时候将timer暂停了一样,在查看对应文档后发现,这事实上就是ru ...

  3. 【推荐】适合本科生的网络公开课(MOOC为主),不断更新……

    题记:身在海大(湛江),是幸运还是不幸,每一个人有自己的定义.人生不能再来一次,唯有把握当下.提高自己,才可能在不能拼爹的年代靠自身实力前行.或许,我们做不了富二代.但我们每一个人.都有机会成为富二代 ...

  4. 时间格式化函数strftime

     #include <time.h> #include <stdio.h> #include <string.h> int main() {   char ti ...

  5. RvmTranslator6.5 is released

    RvmTranslator6.5 is released eryar@163.com RvmTranslator can translate the RVM file exported by AVEV ...

  6. Python标准库:内置函数all(iterable)

    假设可迭代的对象的所有元素所有非空(或者空迭代对象),就返回True.这个函数主要用来推断列表.元组.字典等对象是否有空元素.比方有10000个元素的列表,假设没有提供此函数,须要使用循环来实现.那么 ...

  7. android 图片特效处理之 图片叠加

    这篇将讲到图片特效处理的图片叠加效果.跟前面一样是对像素点进行处理,可参照前面的android图像处理系列之七--图片涂鸦,水印-图片叠加和android图像处理系列之六--给图片添加边框(下)-图片 ...

  8. Regularization —— linear regression

    本节主要是练习regularization项的使用原则.因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象.因此在模型的损失函数中,需要对模型 ...

  9. 2229: [Zjoi2011]最小割(最小割树)

    Description 小白在图论课上学到了一个新的概念——最小割,下课后小白在笔记本上写下了如下这段话: “对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点s,t不在同一个部分中 ...

  10. colrm---删除文件制定列