首页 > 其他分享 >Docker分层

Docker分层

时间:2025-01-22 18:57:40浏览次数:3  
标签:容器 基础 分层 层数 中间层 镜像 Docker Dockerfile

Docker 的分层结构
基础层(Base Layer):

这是镜像的最底层,通常由 FROM 指令指定。例如,FROM ubuntu:20.04 会拉取 Ubuntu 20.04 的基础镜像作为第一层。

中间层(Intermediate Layers):

每一行 Dockerfile 指令(如 RUN、COPY、ADD 等)都会生成一个新的只读层。

这些中间层叠加在基础层之上,构成了完整的镜像。

镜像层(Image Layers):

基础层 + 中间层 = 镜像层。

镜像层是只读的,不可修改。

容器层(Container Layer):

当基于镜像启动容器时,Docker 会在镜像层之上添加一个可写层(Writable Layer),也称为容器层。

容器层是唯一的可写层,所有对容器的修改(如创建文件、修改配置等)都会记录在这一层。

公式
镜像层数 = 基础层(1 层) + 中间层(取决于 Dockerfile 指令数量)。

容器层数 = 镜像层数 + 1(容器层)。

示例
假设有一个 Dockerfile:

dockerfile
复制
FROM ubuntu:20.04 # 基础层(1 层)
RUN apt-get update # 中间层(1 层)
RUN apt-get install -y nginx # 中间层(1 层)
COPY app /app # 中间层(1 层)
CMD [“nginx”, “-g”, “daemon off;”] # 中间层(1 层)
镜像层数:

基础层:1 层。

中间层:4 层。

总镜像层数 = 1 + 4 = 5 层。

容器层数:

镜像层数:5 层。

容器层:1 层。

总容器层数 = 5 + 1 = 6 层。

总结
镜像层 = 基础层 + 中间层。

容器层 = 镜像层 + 1(可写层)。

标签:容器,基础,分层,层数,中间层,镜像,Docker,Dockerfile
From: https://blog.csdn.net/qq_55046640/article/details/145303454

相关文章

  • docker compose是什么?如何使用?
    一、什么是DockerCompose?DockerCompose是一个工具,用于定义和管理多容器的Docker应用。它允许你使用YAML文件来配置应用的服务、网络、卷等,然后用单个命令来启动和管理整个应用的多个容器。通过DockerCompose,你可以轻松地定义和部署一个由多个Docker容器组成的应用,而......
  • Windows 环境下 Docker Desktop + Kubernetes 部署项目指南
    Windows环境下DockerDesktop+Kubernetes部署项目指南一、环境准备二、安装与配置Kubernetes安装windows版的docker启动kubernetes安装windows版的kubectl工具下载k8s-for-docker-desktop启动KubernetesDashboard二、在Kubernetes上部署项目创建一个......
  • mac重启docker被识别成了恶意软件,如何解决?
    最终的结果:遇到的问题:晚上电脑重启后,发现一个这样的提示。用的好好的,怎么就出现了这样的问题呢。我的mac原本是打算直接安装桌面应用使用的,结果发现这个会占用很多资源,并且后面不想用的时候,卸载后的残留文件也会很多。所以,在安装上以后,没有使用就直接卸载了。问题分析:就是......
  • 制作docker 镜像上传到docker hub仓库
    注册dockerhub账号    https://hub.docker.com/  参照此篇:https://www.cnblogs.com/yjlch1016/p/8998479.htmldockerhub上创建仓库https://hub.docker.com/repositories本地制作镜像并上传在本地登陆 dockerhub帐号dockerlogin将容器commit成镜像,可以先用docker......
  • Docker部署Odoo 系统
    #切换到指定安装目录cd/root#创建项目所需的目录mkdirodoo#进入网站项目文件夹cd/root/odoo#创建一个docker-compose.yml配置文件touchdocker-compose.yml#编辑该文件vimdocker-compose.yml将下面代码复制到docker-compose.yml中保存即可version:'3......
  • Docker可视化管理工具Portainer
    Portainer简介Portainer是一个轻量级的、开源的容器管理工具,提供了一个直观的Web用户界面(UI),用于管理Docker和Kubernetes环境。它简化了容器的部署、监控和管理,特别适合不熟悉命令行操作的用户或团队。Portainer架构概述Portainer由两个元素组成:Portainer服务器和P......
  • [docker] 部署 Seata 分布式事务
    docker部署Seata分布式事务在使用Docker部署Seata并与Nacos配置中心结合时,你可以通过以下步骤来实现。Seata是一个开源的分布式事务解决方案,而Nacos是阿里巴巴开源的一个动态服务发现、配置和服务管理平台。一、环境准备部署好mysql服务部署好nacos服务二......
  • 【docker】如何运行没有Root权限的Docker?
    以下文章来源于运维自习室,作者运维自习室Rootless模式的目的是让Docker守护进程以非root用户身份运行。该方案以实验特性的方式在v19.03版本引入,并在v20.10版本成为正式功能。实践官方文档已经做了详细的介绍,这里仅仅做一下实践复现。具体实践环境为:CentOS7.2docker-ce23......
  • Ubuntu22.04上Docker的安装
    在Ubuntu22.04上安装Docker可以帮助您快速构建、测试和部署应用程序。Docker是一个开源的容器化平台,它使开发人员能够将应用程序及其依赖项打包到一个标准化的单元中。本文将详细介绍如何在Ubuntu22.04上安装和配置Docker。一、更新系统首先,确保您的系统软件包是最新的。这有......
  • [docker] 部署 nacos-server
    拉取nacosserver镜像dockerpullnacos/nacos-server:v2.4.3如果失败(网络问题),可以使用国内的镜像:dockerpullnacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.4.3#其它版本nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v2.3......