zoukankan      html  css  js  c++  java
  • Docker入门(一):简介

             这个《Docker入门》系列文档,是我根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。总体分为如下几个部分:

    1 Docker入门:简介

    2 Docker入门:安装运行

    3 Docker入门:容器(Containers)

    4 Docker入门:服务(Services)

    5 Docker入门:Swarms

    6 Docker入门:Stacks

    7 Docker入门:部署app

    8 Docker入门:稍高级的话题

    1.1 容器简介

             映像(image)就是轻型的、独立的可执行的包(package)。这个包包括了运行一个程序所需要的所有东西,包括:代码,运行时,库,环境变量和配置文件。

             容器(container)是映像的运行时实例:映像被加载到内存并执行。默认情况下,容器运行和主机环境是完全隔离的,只是根据需要访问主机文件和配置的主机端口。

             容器是直接在主机的内核里运行程序的。而虚拟机是通过hypervisor取得主机资源的虚拟访问权限,相比之下,容器的运行方式性能更好。容器能直接访问主机,每一个容器运行在一个单独的、隔离的进程中,大家所占用的内存也都一样。

    1.2 容器VS虚拟机

             通过下面两张图进行对比。

             虚拟机:

       

             虚拟机运行子操作系统:主意每个盒子里的OS层。这种方式是资源敏感的,并且磁盘映像和应用程序的状态受到很多因素的影响,比如:OS设置,系统安装的依赖,OS安全补丁,以及容易丢失、难以复制的因素。

             容器:

             多个容器能够共享同一个内核。容器映像中所需要的信息只是可执行程序及其依赖包,而这些信息并不需要安装在主机系统中。这些进程像原生进程一样,你可以使用命令docker –ps来单独管理它们,就像你在Linux系统中使用命令ps来查看活动进程一样。最后,因为容器包含所有的依赖,也不需要额外配置,所以,一个容器化的程序可以运行在任何地方。

    1.3 总结

             作为一个独立的、可移植的可执行程序,这种可伸缩性具有深远的意义。它意味着CI/CD可以针对分布式程序的任何一个部分来推送更新。系统依赖不再成为问题,并且资源的聚合性也增加了。可伸缩行为的编排只要螺旋添加新的可执行程序就可以了,而不需要添加新的虚拟机系统。

  • 相关阅读:
    使用CTE分页 在MSSQL2005上可以使用
    uc_client目录
    用SQL语句添加删除修改字段
    for all your mad scientific needs think geek
    C++:Prototype模式去掉Clone方法
    linux命令:top
    linux命令:time
    C++:运行期断言和编译期断言
    内核分析:EXPORT_SYMBOL解析
    Linux工具:使用SED编辑器
  • 原文地址:https://www.cnblogs.com/robinex/p/7660578.html
Copyright © 2011-2022 走看看