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 服务端进行通信。

相关推荐
繁依Fanyi34 分钟前
旅游心动盲盒:开启个性化旅行新体验
java·服务器·python·算法·eclipse·tomcat·旅游
南瓜小米粥、1 小时前
通过fdisk初始化Linux数据盘
linux·运维·服务器
sp_wxf2 小时前
Stream流
linux·服务器·windows
飞酱不会电脑3 小时前
云计算第四阶段 CLOUD2周目 01-03
云原生·容器·kubernetes
老齐谈电商3 小时前
开源电商erp系统启航电商ERP系统centos Docker部署
docker·开源·centos
PythonFun3 小时前
自建RustDesk服务器:详细步骤与操作指南
运维·服务器
Android技术栈3 小时前
鸿蒙开发(NEXT/API 12)【管理应用与Wear Engine服务的连接状态】手机侧应用开发
服务器·harmonyos·鸿蒙·鸿蒙系统·openharmony
笑的像个child3 小时前
使用树莓派搭建音乐服务器
服务器·树莓派·navidrome
facaixxx20243 小时前
京东云主机怎么用?使用京东云服务器建网站(图文教程)
运维·服务器·京东云
jyan_敬言3 小时前
【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
linux·运维·服务器·c语言·开发语言·汇编·c++