docker 知识讲解
创始人
2025-05-29 06:22:54

一:docker三大基础组件:

docker有三个重要的概念:仓库,镜像,容器,它们是docker的三大基础组件。

 1.镜像:

操作系统分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而docker镜像,就相当于是一个root文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 ubuntu:18.04 最小系统的root文件系统。

docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序,库,资源,配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷,环境变量,用户等)。镜像不包含任何动态数据,其内容在构建之后也不会改变。

2.容器:

镜像(image)和容器(container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等。

容器的实质是进程,但与直接在宿主机执行的进程不同,容器进程运行于属于自己的独立的命名空间,因此容器可以拥有自己的root文件系统,自己的网络配置,自己的进程空间,甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里,使用起来就像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性。

3.仓库:

镜像构建完成之后,可以很容易的在当前宿主机上运行,但是,如果需要在其他服务器上使用这个镜像,就需要一个集中的存储,分发镜像的服务,docker registry 就是这样的服务。

一个Docker Registry 中可以包含多个仓库,每个仓库可以包含多个标签,每个标签对应一个镜像。

通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应软件的各个版本。我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件那个版本的镜像。如果不给出标签,将以latest作为默认标签。

以 ubuntu 镜像为例,ubuntu是仓库的名字,其内包含有不同的版本标签,如:16.04 , 18.04   我们可以通过 ubuntu:16.04 ,或者ubuntu:18.04来具体指定所需的哪个版本的镜像。如果忽略了标签,比如 ubuntu,那将视为 ubuntu:latest.

 仓库名经常以两段式路径形式出现,比如 jwilder/nginx-proxy,前者往往意味着 docker registry多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 docker registry 的软件或服务。

相关内容

热门资讯

云龙天池国家级自然保护区入选世... 转自:云南日报记者近日从云龙天池国家级自然保护区获悉,该保护区正式入选世界自然保护联盟绿色名录,成为...
芒果干里的“暖心账”​ 我 为 群 众 办 实 事我是楚雄彝族自治州楚雄市八角镇大麦地村委会泥期苴小组的鲁晓玲。天还没亮,新...
在亲戚借条上签名被判连带清偿责...   三湘都市报12月14日讯  欠钱逾期未还,双方公堂对簿,竟因借据上的“担保人”“连带担保人”起了...
学分能换“高级工”证书?湖南暂...   毕业就能拿到“高级工”的技能证书,实现“毕业即持证”,这是种什么样的体验?近日,安徽皖江工学院土...
长赣高铁湖南段首座隧道进洞施工     12月13日,位于浏阳市荷花街道和澄潭江镇的长赣高铁湖南段首座隧道——苏家庵隧道正式进洞。 ...