docker

2018-05-05 Vaniot 更多博文 » 博客 » GitHub »

docker

原文链接 https://vaniot-s.github.io/2018/05/05/docker/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


docker

docker 使用go语言开发,对进程进行封装隔离。 <!--more-->

docker的三个基本概念

一、镜像(Image)

Docker中的文件系统(操作系统的完整root文件系统),提供容器运行时所需的程序,文件,资源,配置及配置参数(匿名卷,环境变量,用户),镜像不会包含任何动态数据,其中的内容在构建后不会发生任何的变化,Docker的镜像设计基于Union FS设计为分层存储的架构。镜像的构建一层一层前者是后者的基础,构建完成后不再发生变化。

二、容器(container)

容器是镜像的运行实体(实质为进程),容器运行时以镜像为基础层创建当前的容器存储层,容器存储层的生命周期与容器相同,保存于容器存储层的信息都会丢失,所以容器不向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写。

三、仓库(Repository)

仓库用于集中存储,分发镜像的服务。