docker入门2--生命周期
容器的概念:
一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。
- 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
- 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。
- 容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。
容器和虚拟化的区别:
通俗地讲,容器就是一个进程,它无法直接使用硬件资源,但自身又带着一堆类似于os的环境。从某种意义上讲,我们可以认为它是轻量级的虚拟化(当然,它和虚拟化最大的不同就在于无法直接使用硬件资源)。
下面打个表格,对比一下虚拟化和容器:
- 操作系统是对物理硬件进行抽象。它在上面搭建虚拟平台管理硬件,并安装虚拟机进行分配。每台vm都是一台独立的机器,所以它们包含内核、二进制、配置文件等;所以显得很臃肿。虽然很好管理,但是在应用层面,耦合性过高,一崩百崩。
- 容器是对应用层进行抽象。它在操作系统上运行守护进程(docker daemon),通过此守护进程来建立docker镜像,运行docker服务。同一台机器上面可以运行很多docker进程,而且它们可以做到互不干扰,从而保持低耦合的状态。但是问题就是,配置较为麻烦。
docker生命周期
docker包含三个基本概念:
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
他们之间的关系如下:
下面我们一个一个解释:
docker images(一个特殊的文件系统):
首先,docker images是基于一个叫做“union FS”的技术,它可以做到分层存储。也就是说,虽然docker镜像中包含一些环境配置,但是它只专注于自己本层的配置,而没有整体的所有文件(例如,笔者在拉取nginx镜像后,发现内部并没有vim)。这也是为了更好地分层,进行高可用和低耦合的操作。
docker container(镜像运行后的实体):
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。
容器的本质就是一个进程。在它run起来后,会占用一部分系统资源,但是并不多。它与系统运行的进程不同的一点是,它有自己独立的namespace。也就是container id,而不是pid。我们可以通过docker命令来管理这些容器,比如,运行/删除/修改/查看等。
容器的存储层与容器的生命周期一样。这点应该注意,我们要切记,尽量不要在容器层跑存储。如果容器挂了,那么数据也就没了。如果一定要这样子,也应使用数据卷、绑定宿主目录等方式,跳过容器层存储,避免隐藏的麻烦。
docker repository(docker镜像仓库):
镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。
一个Docker Registry中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过:的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。
这边我还没研究到建立自己的镜像仓库,这有点太专业了。。。。。。搞不掂啊!!!
docker build/run/ship
docker build: 生成镜像的方法,通常由编写dockerfile来进行指引。
docker run:镜像->容器,造出实例来,让它运行,提供服务。
docker ship: 主机和仓库间运输,这里的仓库就像是超级码头一样。
Docker运行过程也就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器。所以,我们也常常将Docker称为码头工人或码头装卸工,这和Docker的中文翻译搬运工人如出一辙。
PS: 我在写这篇文章的时候,由于表格处理不够美观,所以就直接截图了。如果各位dalao走过路过,能教教我怎么把表格弄得好看一点的话,麻烦给我留个言,小生先提前谢谢您的帮助啦!
docker入门2--生命周期的更多相关文章
- Spring入门之生命周期
好几日没有读东西了,今天本来要读mybatis原理部分,但是看到作者讲,只是学会用不用学那么深,遂直接开干spring,工作中一直用springboot,框架都是领导搭好的,每天的任务就是增删改查,挺 ...
- android入门 — Activity生命周期
Activity总共有7个回调方法,代表着不同的生命周期的环节. 1.onCreate() 在活动第一次被创建的时候调用.在这个方法中需要完成活动的初始化操作,比如说加载布局.绑定事件等. 2.onS ...
- maven入门-- part3 生命周期
简介: Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是: Clean Lifecycle 在进行真正的构建之前进行一些清理工作. Default ...
- Docker容器的生命周期管理
https://blog.csdn.net/u010278923/article/details/78751306
- 05-Vue入门系列之Vue实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- Vue入门系列(五)Vue实例详解与生命周期
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
- Docker安装,基本概念,执行流程,生命周期简介
Docker基本概念 在使用Docker前,首先要先知道Docker中这几个常用的概念: 镜像:镜像是文件,只读的,提供了运行完整软硬件应用程序的集装箱. 容器:是镜像的实例,由Docker负责创建, ...
- Docker入门详解(转载)
来源 http://dockone.io http://dockone.io/article/6051 Docker是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起. ...
- Vue实例详解与生命周期
http://www.jianshu.com/p/b5858f1e6e76 Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己 ...
随机推荐
- Node多国语言包
Via:https://github.com/caouecs/Laravel-lang 1.下载:https://github.com/caouecs/laravel-lang/archive/mas ...
- Codeforces 1221 F Choose a Square
题面 不知道大佬们怎么想的,反正我看到这种区间包含性质的并且score只和包含的区间与询问区间挂钩的题,马上就想到了扫描线23333 虽然革命方向无比正确,但却因为SB错误交了5次才 A. WA第一发 ...
- Spring注解驱动——组件注册系列
1.@Configuration 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被Annot ...
- idea导入项目之后包位置报错
解决办法:
- 十二、 RAID
https://blog.51cto.com/sonlich http://note.youdao.com/noteshare?id=17083150f38dd19343f82ea6cc0e0e62& ...
- POJ 3186 Treats for the Cows ——(DP)
第一眼感觉是贪心,,果断WA.然后又设计了一个两个方向的dp方法,虽然觉得有点不对,但是过了样例,交了一发,还是WA,不知道为什么不对= =,感觉是dp的挺有道理的,,代码如下(WA的): #incl ...
- Hive 参数
hive.exec.max.created.files •说明:所有hive运行的map与reduce任务可以产生的文件的和 •默认值:100000 hive.exec.dynamic.partit ...
- Spring基础环境搭建所需要的jar包
红色标明的jar包.是spring框架开发的基础jar包. 必要jar包. spring-core-4.1.6.RELEASE.jar 框架核心jar包. spring-beans-4.1.6.REL ...
- Apache Flink -Streaming(DataStream API)
综述: 在Flink中DataStream程序是在数据流上实现了转换的常规程序. 1.示范程序 import org.apache.flink.api.common.functions.FlatMap ...
- Appium Desktop 元素定位和脚本录制功能
Appium Desktop除了可以做Server之外还可以进行元素定位和脚本录制功能,点击放大镜按钮,进入页面设置.开始配置Desired Capabilities. 配置Desired Capab ...