一、为什么使用Docker

软件开发最大的麻烦事之一,就是环境配置。很多人想到,能不能从根本上解决问题,软件可以带环境安装?

也就是说,安装的时候,把原始环境一模一样地复制过来。

目前有两个主流解决方案:

1. 虚拟机

虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统。

但是,它依然有很多缺点:

(1)资源占用多

(2)冗余步骤多

(3)启动慢

比较上面两张图,我们发现虚拟机是携带操作系统,本身很小的应用程序却因为携带了操作系统而变得非常大,很笨重。

Docker是不携带操作系统的,所以Docker的应用就非常的轻巧。另外在调用宿主机的CPU、磁盘等等这些资源的时候,

拿内存举例,虚拟机是利用Hypervisor去虚拟化内存,整个调用过程是虚拟内存->虚拟物理内存->真正物理内存,但是,

Docker是利用Docker Engine去调用宿主的的资源,这时候过程是虚拟内存->真正物理内存。

2. Docker容器

由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器。

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。容器可共享同一个操作系统内核,将应用进程与系统

其他部分隔离开。Docker就是基于Linux容器的一种封装。它是目前最流行的 Linux 容器解决方案。

二、什么是Docker

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。

程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,

Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、

复制、分享、修改,就像管理普通的代码一样。

源。

三、Docker的用途

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

四、Docker镜像、容器与仓库

Docker 镜像 Docker 镜像是用于创建 Docker 容器的模板。
Docker 容器 容器是独立运行的一个或一组应用。
Docker 仓库 Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

浅谈Docker的更多相关文章

  1. 浅谈Docker(一)

    注:由于别人写的太好了就转来基础介绍! 转自:http://www.infoq.com/cn/articles/docker-core-technology-preview Docker是PaaS供应 ...

  2. 浅谈 Docker 安全合规建设

    通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...

  3. 浅谈Docker(二)

    Docker使用cgroup实现CPU,内存和磁盘IO等系统资源的限制. CPU Docker现在有2个与CPU资源相关的参数,-c可以指定CPU的占比,--cpuset可以绑定CPU.例如,指定容器 ...

  4. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

  5. 浅谈surging服务引擎中的rabbitmq组件和容器化部署

    1.前言 上个星期完成了surging 的0.9.0.1 更新工作,此版本通过nuget下载引擎组件,下载后,无需通过代码build集成,引擎会通过Sidecar模式自动扫描装配异构组件来构建服务引擎 ...

  6. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 浅谈ELK日志分析平台

    作者:珂珂链接:https://zhuanlan.zhihu.com/p/22104361来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 小编的话 “技术干货”系列文章 ...

  8. 微服务浅谈&服务治理的演变过程

    这两天对互联网的架构演变进行了简单了解,并对微服务的出现很感兴趣,所以对相关知识进行了简单的整理与总结. 本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后介绍了微服务及最新的服务网格(Se ...

  9. AI云原生浅谈:好未来AI中台实践

    AI时代的到来,给企业的底层IT资源的丰富与敏捷提出了更大的挑战,利用阿里云稳定.弹性的GPU云服务器,领先的GPU容器化共享和隔离技术,以及K8S集群管理平台,好未来通过云原生架构实现了对资源的灵活 ...

随机推荐

  1. VBS 学习

    VBS其他功能 获取系统用户名 DimWshNetwork Set WshNetwork =CreateObject("WScript.Network") strTaccount ...

  2. css3制作梯形导航

    /*HTML*/<div class="nav"> <a href="javascript:;">首页</a> <a ...

  3. 性能测试工具LoadRunner26-LR之lr脚本插入DOS命令

    基础命令 1.dir 无参数:查看当前所在目录的文件和文件夹 /s:查看当前目录其所有子目录的文件和文件夹 /a:查看包括隐含文件的所有文件 /ah:只显示隐含文件 /w:以紧凑方式显示文件和文件夹 ...

  4. 关于Vim 的插件snipmate 以及它的安装方式

    在网上看了http://study.163.com/course/courseMain.htm?courseId=269016#/courseMain   里关于snipmate 的视频 snipma ...

  5. 连接虚机中的mysql服务

    1:修改mysql库中的user表的root用户的host值为% 2:授权:在mysql命令中执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFI ...

  6. C#遍历匿名对象的所有属性、value

    Object obj = ,pwd=" }; //遍历匿名对象 foreach (System.Reflection.PropertyInfo p in obj.GetType().GetP ...

  7. mybatis问题记录

    问题:2019年3月29日 23:46:24 org.apache.ibatis.builder.IncompleteElementException: Could not find result m ...

  8. mysql数据库免安装版的配置过程

    1,从mysql官方网站下载免安装版本与自己电脑位数相同的mysql版本. 链接:https://www.mysql.com/ 2,将包解压到自定义的目录下 (例:D:\mysql-5.7.23-wi ...

  9. wamp环境初步使用

    在wamp的www目录下部署页面,localhost/目录/index.html

  10. 零基础逆向工程39_Win32_13_进程创建_句柄表_挂起方式创建进程

    1 进程的创建过程 打开系统 --> 双击要运行的程序 --> EXE开始执行 步骤一: 当系统启动后,创建一个进程:Explorer.exe(也就是桌面进程) 步骤二: 当用户双击某一个 ...