早在集装箱没有出现的时候,码头上还有许多搬运的工人在搬运货物,在集装箱出现以后,码头上看到更多的不是工人,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处,比如:货物多打包在集装箱里面,可以防止货物之前相互影响。并且到了另外一个码头需要转运的话,有了在集装箱以后,直接把它运送到另一个容器内即可,完全可以保证里面的货物是整体的搬迁,并且不会损坏货物本身。那么docker 镜像在IT行业中也扮演着非常重要的形象。
什么是docker 镜像
就是把业务代码,可运行环境进行整体的打包
如何创建docker镜像:
现在docker官方共有仓库里面有大量的镜像,所以最基础的镜像,我们可以在共有仓库直接拉取,因为这些镜像都是原厂维护,可以得到即使的更新和修护。
Dockerfile:
我们如果想去定制这些镜像,我们可以去编写Dockerfile,然后重新bulid,最后把它打包成一个镜像,这种方式是最为推荐的方式包括我们以后去企业当中去实践应用的时候也是推荐这种方式。
Commit :
当然还有另外一种方式,就是通过镜像启动一个容器,然后进行操作,最终通过commit这个命令commit一个镜像,但是不推荐这种方式,虽然说通过commit这个命令像是操作虚拟机的模式,但是容器毕竟是容器,它不是虚拟机,所以大家还是要去适应用Dockerfile去定制这些镜像这种习惯。
镜像的概念主要就是把把运行环境和业务代码进行镜像的打包,我们这个课重点是了解镜像的分层技术,我们先来看一个Ubuntu系统的镜像。
我们可以镜像可以分层很多个layer,并且他们都有大小和ID,我们可以看到这里有4个layer ID号,最终这个镜像是由他们layer组合而成,并且这个镜像它是只读的,它不能往里面写数据,如果想写数据怎么办呢?我们会在镜像上启一层contain layer,其实就是相当于把镜像启动成一个容器,那么在容器这一层,我们是可写的。
比如我们想在这个Ubuntu这个系统上加一层,只能在上面继续叠加,这些工作其实都是由cow,写字库下的机制来实现的。
子镜像
下载的时候只会下载子镜像最上面的一层,因为其它层已经有了,那么它可以做到一个节约空间的作用。
父镜像
最为典型的就是镜像的分层技术——aufs
Aufs是Another Union File System的缩写,支持将多个目录挂载到同一个虚拟目录下。
已构建的镜像会设置成只读模式,read-write写操作是在read-only上的一种增量操作,固不影响read-only层。
这个研究有一个好处,比如我们现在可以看到手机里面的APP,在命令里面都会用APP字段下回来,在下回来之前它就是一个静态的,我们没有往里面写东西,但是我们启动起来以后,我们就可以往里面写东西,进行各种各样的操作。但是如果我们把它关掉了以后,或者删除了以后,它的这个镜像是存在远端的,所以在这个镜像里面是不会去修改的。并且这样也会有一个非常好的地方,这个场景非常适合我们去实现测试环境,因为我们的测试环境经常会有一个操作就是灌数据,我们可以提前把这个镜像数据打包到测试里面,那么这个镜像软件里面包含了,最上面是nginx,比如它里面会有一些数据,我们可以在往上面打一层数据,打完之后把它起成一个容器就可以去测试,测试完之后这个容器里面会生成各种各样的数据,也就是脏数据,这样的话,我们就可以把这个容器删掉,删掉以后我们镜像里面的容器是不会受影响的。如果说它想再创建一套,我们可以把这个镜像再启一个容器,就可以是一个一模一样的,并且是一个干净的环境。
文章来源:麦子学院
原文链接:http://www.maiziedu.com/wiki/cloud/dockerimage/
相关推荐
Docker 镜像分层原理是 Docker 容器技术的核心概念之一。通过本文,我们将深入探讨 Docker 镜像分层原理的概念、产生原因和应用场景。 一、镜像分层与容器层 在 Docker 中,镜像是分层的,每个镜像层都是独立的,...
Docker是一种轻量级的虚拟化技术,它允许开发者将应用及其依赖打包到一个可移植的容器中,然后在任何安装了Docker的机器上运行。Docker容器与传统的虚拟机不同,因为容器共享操作系统内核,并且不需要运行整个操作...
linux系统docker离线镜像jdk8镜像资源的出现,为那些需要在离线环境中快速部署JDK8环境的用户提供了一个非常实用的解决方案,大大简化了操作流程,降低了技术门槛。这不仅提高了工作效率,也保证了系统的安全性和...
docker:Docker技术详解及其特点; docker:Docker技术详解及其特点; docker:Docker技术详解及其特点; docker:Docker技术详解及其特点; docker:Docker技术详解及其特点; docker:Docker技术详解及其特点; ...
Docker 技术详解,Docker配置说明; Docker 技术详解,Docker配置说明; Docker 技术详解,Docker配置说明; Docker 技术详解,Docker配置说明; Docker 技术详解,Docker配置说明; Docker 技术详解,Docker配置...
对于追求快速部署和高效运维的企业或个人来说,该“linux服务器docker离线镜像资源mysql8.4.2镜像包”能够提供一个便捷的解决方案,尤其适合网络环境受限的场合。通过合理使用该资源包,可以有效地提升部署效率,...
redis-7.0.15 docker离线镜像安装包
达梦8版本学习docker版本镜像
Docker通过容器技术将应用及其依赖打包在可移植的镜像中,使得应用可以在任何安装了Docker的机器上快速、一致地运行。MinIO作为高性能的对象存储服务器,它提供了类似Amazon S3的API兼容性,广泛应用于私有云和公共...
2. 通过Docker镜像的方式,用户可以轻松地在不同的环境中部署和运行Redis,无需手动安装和配置,从而节省时间和资源。 3. 离线镜像意味着在没有互联网连接的环境中也可以安装和使用Redis,这对于网络受限或安全要求...
主要介绍了Docker镜像分层的原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
基于alpine系统构建docker镜像,实现可配置和易于管理的docker镜像。 项目简介 提供非常小的docker镜像。 提供易于配置的docker镜像。 提供非常稳定的docker镜像。 使用docker镜像快速启用微服务架构。 使用docker...
在Docker的生态系统中,Docker镜像扮演着至关重要的角色,它包含了运行特定应用程序所需的全部依赖,确保了应用能够在任何安装了Docker的机器上以一致的环境运行。 本文档旨在详细介绍如何使用Docker镜像nginx:...
MySQL8 Docker镜像是一种将MySQL数据库管理系统打包为可以在Docker容器中运行的形式。Docker是一个开源的应用容器引擎,可以将应用程序及其依赖打包到一个可移植的容器中,然后发布到任何支持Docker的平台上。MySQL...
MySQL作为最流行的开源关系型数据库管理系统,也被整合进了Docker镜像市场中,让数据库的部署和管理变得更加轻便和灵活。 在本文中,我们将深入探讨如何使用MySQL 5.7的Docker镜像。首先,需要明确的是,Docker镜像...
群晖Container Manager配置; docker 镜像加速; docker镜像同步站;
CentOS7 Docker Tar镜像,
Docker Redis镜像为用户提供了快速、便捷、高效的方式来部署和管理Redis数据库服务,是现代云计算和微服务架构中不可或缺的组件之一。通过使用Docker Redis镜像,开发者和系统管理员可以更加专注于业务逻辑的开发和...
由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。一般我们会使用镜像加速或者直接从国内的一些平台镜像仓库上拉取。 我比较常用的是网易的镜像中心和daocloud镜像市场。 网易镜像中心:...