docker镜像

镜像是什么

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,包含软件运行所需的所以内容,包括代码、运行时、库、环境变量和配置文件。

Docker镜像加载原理

UnionFs(联合文件系统)

UnionFs 分层、轻量级、高性能的文件系统,对文件系统的修改作为一次提交一层层的叠加,将不同目录挂载在同一个虚拟文件系统下。

镜像加载主要依赖bootfs+rootfs,bootfs主要包含bootloader和kernel,bootloader主要是引导加载kernel,rootfs在bootfs之上,就是各种不同的操作系统版本的发行版(小的虚拟机环境)。
在这里插入图片描述
平时我们安装虚拟机的CentOS都是好几个G,为什么docker这里才200M?

对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供rootfs就行了。由此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以共用bootfs。

分层的镜像
以我们的pull为例,在下载的过程中我们可以看到docker的镜像好像是在一层一层的在下载
在这里插入图片描述
为什么docker镜像要采用这种分层结构呢
最大的一个好吃就是共享资源
比如:有多个镜像都从相同的base镜像构建而来,那么宿主机只需在磁盘上保存一份base镜像,同时内存中也只需加载一份base镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

镜像的特点
Docker镜像都是只读的
当容器启动时,一个新的可写层被加载到镜像的顶部。
这一层通常被称作为"容器层",“容器层”之下的都叫"镜像层"。
在这里插入图片描述

### Docker 镜像的相关资料与教程 #### 一、Docker 安装与基础概念 在深入研究 Docker 镜像的制作之前,了解 Docker 的安装方法及其核心概念至关重要。这有助于更好地理解镜像是如何构建和使用的。Docker 是一种容器化技术,允许开发者创建可移植的应用程序环境[^1]。 #### 二、Docker 镜像的基础操作 Docker 提供了一系列命令来管理镜像,这些命令对于下载、上传和删除镜像非常有用。以下是几个常用的 Docker 命令: - `docker pull`: 从远程仓库拉取镜像到本地。 - `docker images`: 查看当前已有的镜像列表。 - `docker rmi`: 删除指定的镜像。 通过执行以下命令可以获取官方 Jenkins 镜像并启动它: ```bash docker pull jenkins/jenkins:lts docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts ``` 此过程展示了如何利用官方提供的 Docker 镜像快速部署服务[^2]。 #### 三、自定义 Docker 镜像的制作流程 为了满足特定需求,通常需要定制自己的 Docker 镜像。这一过程涉及以下几个方面: ##### 1. 创建 Tar 包 将目标系统的必要文件打包成 `.tar` 文件是一个常见的做法。例如,在 CentOS 系统下可以通过如下方式完成: ```bash mkdir /docker tar -cvpf /docker/systemcentos79.tar --directory=/ \ --exclude=docker --exclude=proc --exclude=run --exclude=sys . ``` ##### 2. 编写 Dockerfile 接着需准备一份名为 `Dockerfile` 的配置脚本,该文件描述了新镜像应该如何被组装起来。下面是一份简单的例子: ```Dockerfile FROM centos:7.9 COPY systemcentos79.tar / RUN yum update -y && yum install httpd -y CMD ["httpd", "-foreground"] EXPOSE 80 ``` ##### 3. 构建镜像 当所有准备工作完成后,就可以调用 `docker build` 来实际生成新的镜像了: ```bash docker build -t my-centos-httpd:v1 . ``` 以上步骤涵盖了从原始数据收集到最后成品产出的整体链条[^3]。 #### 四、总结 掌握 Docker 的基础知识之后,便能够灵活运用其工具链实现自动化运维的目标;无论是选用现成资源还是亲手打造专属方案都变得轻而易举。希望上述指导能帮助您顺利开启探索之旅!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值