【赵渝强老师】什么是Docker的镜像

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。

b014.png

Docker的镜像是一个模板,或者说其是一个只读的文件。在该模板中包含应用程序和应用程序运行时所需要的依赖环境。Docker的镜像采用的是分层的文件系统,每一次对镜像的修改将以读写层的形式增加到原来的只读文件的模板上。


视频讲解如下:


下图展示了Docker镜像的分层结构。



下面从下向上介绍。


  • 内核bootfs:用来加载Linux的内核以启动Linux环境。作为Docker的用户来说不会与这一层直接打交道。
  • 根镜像:可以将其理解成是操作系统,上图中的根镜像使用的是CentOS。
  • 在根镜像之上(或者说在操作系统之上)就是叠加的每一层应用,如上图中的MySQL、Tomcat等。



另外,在物理存储上,镜像的本质其实是磁盘上一系列文件的集合,如上图所示。


Docker默认的镜像存储路径是“/var/lib/docker”,也可以自定义其他路径。


相关文章
|
23天前
|
存储 安全 应用服务中间件
【赵渝强老师】Docker的体系架构
Docker采用客户端-服务器架构,客户端与守护进程通过sockets或RESTful API通信。守护进程负责构建、运行和分发容器。镜像仓库(如Docker Hub和Harbor)存储镜像,容器则基于镜像创建,是运行应用的安全平台。
【赵渝强老师】Docker的体系架构
|
27天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
1073 29
|
23天前
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
|
22天前
|
Kubernetes 负载均衡 Linux
【赵渝强老师】Docker三剑客
本文介绍了Docker容器中的三个重要工具:Docker Compose、Docker Machine 和 Docker Swarm。Docker Compose用于定义和运行多容器应用,通过YAML文件简化容器管理。Docker Machine支持远程主机上的Docker安装和管理,适用于跨平台使用。Docker Swarm则提供集群管理功能,实现负载均衡和故障迁移,适合大规模部署。文中还提供了相关示例和架构图,帮助读者更好地理解和使用这些工具。
|
28天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
119 2
|
1月前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
79 1
|
1月前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
22天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
22天前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
22天前
|
应用服务中间件 网络安全 数据安全/隐私保护
【赵渝强老师】使用Docker Machine远程管理Docker
Docker Machine 是 Docker 官方提供的远程管理工具,可帮助开发人员在远程主机或虚拟机上安装和管理 Docker 环境。本文介绍了如何在远程主机上安装 Docker 并配置免密码登录,以及使用 Docker Machine 管理远程 Docker 主机的常用命令。