docker基础认知(镜像+容器+仓库+客户端与服务器)

镜像(Image)

静态文件,提供了容器运行时所需的程序、库、资源、配置等文件,另外包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。(相比文件的说法,文件系统的说法更加合理,因为镜像就像一个文件系统,包含了许多静态的目录和文件)

镜像包含操作系统完整的 root 文件系统,体积较大,所以其被设计为分层存储的架构。不同于操作系统那样的一个超大的ISO打包文件,一个镜像是由多层文件系统联合组成;在镜像构建时,会一层层构建,前一层是后一层的基础,每一层构建完就不会再发生改变。

分层存储的特征使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。

容器(Container)

进程,镜像是静态的定义,容器是镜像运行时的实体,可以被创建、启动、停止、删除、暂停等。

由于是虚拟化技术,对于容器进程来说,它会运行于属于自己的独立的命名空间,可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。

容器也运用了分层存储技术,每一个容器运行时,都是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。容器运行时,只会修改当前层,不会影响上层的镜像层;容器消亡时,容器存储层也随之消亡,任何保存于容器存储层的信息都会随容器删除而丢失。

(最佳实践:容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者 绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。)

仓库(Repository)

docker Registry是一个集中的存储、分发镜像的服务。一个 Docker Registry 中可以包含多个仓库;每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

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

Docker Registry 公开服务

开放给用户使用、允许用户管理镜像的 Registry 服务。一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。国内也有一些云服务商提供类似于 Docker Hub 的公开服务。比如网易云镜像服务DaoCloud 镜像市场阿里云镜像库等。

Docker客户端与Docker daemon

Docker 使用 C/S 结构,即客户端/服务器体系结构。 Docker 客户端与 Docker 服务器进行交互,Docker服务端负责构建、运行和分发 Docker 镜像。 Docker 客户端和服务端可以运行在一台机器上,也可以通过 RESTful 、 stock 或网络接口与远程 Docker 服务端进行通信。

相关推荐
zyu674 小时前
03-Docker存储和网络
网络·docker·容器
牛奔4 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
翼龙云_cloud5 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
墨风如雪5 小时前
拒绝被找回!MJJ必修课:Outlook邮箱交易后的“防回手”安全设置全攻略
服务器
木童6625 小时前
Kubernetes 操作管理完全指南:从陈述式到声明式,覆盖全生命周期
云原生·容器·kubernetes
DX_水位流量监测6 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
电商API&Tina6 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
不想画图6 小时前
Kubernetes(三)——组网概念和基础操作指令
云原生·容器·kubernetes
Mr_Xuhhh7 小时前
博客标题:深入理解Shell:从进程控制到自主实现一个微型Shell
linux·运维·服务器
m0_7381207210 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh