容器技术2-镜像与容器储存

目录

一、镜像制作

1、ddocker build

2、docker commit

二、镜像存储

1、公共仓库

2、私有仓库

三、镜像使用

四、容器存储

1、镜像元数据

2、存储驱动

3、数据卷


一、镜像制作

1、ddocker build

基于 Dockerfile 自动构建镜像

其机制为:每一行都会基于上一的中间容器来执行对应的修改命令,然后通过 docker build 提交,经过一次次循环,最终提交成为目标镜像。

Dockerfile 示例:

FROM ubuntu:15.04
COPY . /app
RUN make /app
CMD python /app/app.py

Dockerfile 中的每一行指令(COPY、RUN、CMD)都会生成新的一层,叠加在上一个指令生成的文件系统之上,最后所有镜像层叠加就构成了镜像的文件系统。

2、docker commit

首先使用某一镜像启动容器,进入容器中完成需要的操作,最后在宿主机上执行 docker commit 命令,该命令会将此时的容器打包成一个新的镜像。

二、镜像存储

分为公共仓库和私有仓库

1、公共仓库

面向整个互联网用户,典型的代表为 Docker Hub

2、私有仓库

在一定范围内可访问的镜像仓库,典型的代表为 Harbor,Docker Hub也支持设置私有仓库

三、镜像使用

常用命令 docker pull/push

其他命令操作详细用法参考官方文档:

https://docs.docker.com/engine/reference/commandline/images/

四、容器存储

1、镜像元数据

在 Linux 系统中 Docker 的数据默认存放在/var/lib/docker 中

镜像每一层的 ID 是该文件内容的哈希校验值,作为该层的唯一标识。

2、存储驱动

理想情况下,使用挂载卷来存储高读写的目录,很少将数据直接写入容器的可写层。 但是,总有些特殊需求需要直接写入容器的可写层。这时候就需要存储驱动来作为容器和宿主机之间的媒介。Docker 依靠驱动技术来管理镜像和运行它们的容器间的存储和交互。

根据不同的场景选择合弁的存储驱动,目前 Docker 主要支持 AUFS、BtrFS、Device Mapper、OverlayFS、ZFS 五种存储驱动。

3、数据卷

文件系统的改动都是发生在最上面的可读写层,在容器的生命周期内,它是持续的,包括容器被停止后。但是,当容器被删除后,该数据层也随之被删除了。

Docker 采用数据卷(Volume)的形式向容器提供持久化存储,数据卷是持久化的,不会依赖于容器的生命周期,绑定挂载(Bind Mounts)依赖于主机的目录结构,但数据卷是由 Docker 管理。

Docker 主机上数据卷的挂载方式:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

<C++>STL->string

string类的由来 这是string的定义: string类是模板实例化后的别名,basic_string是字符串类模板,常见的字符串类型有wchar_t char char16_t char32_t ,basic_string类针对的是所有字符串类型设计出来的一个模板,而我…

Elasticsearch基础篇(八):常用查询以及使用Java Api Client进行检索

ES常用查询以及使用Java Api Client进行检索 1. 检索需求 参照豆瓣阅读的列表页面 需求: 检索词需要在数据库中的题名、作者和摘要字段进行检索并进行高亮标红返回的检索结果需要根据综合、热度最高、最近更新、销量最高、好评最多进行排序分页数量为10&#xf…

flutter设置windows是否显示标题栏和状态栏和全屏显示

想要让桌面软件实现全屏和不显示状态栏或者自定义状态栏,就可以使用window_manager这个依赖库,使用起来还是非常方便的,可以自定义显示窗口大小和位置,还有设置标题栏是否展示等内容,也可以设置可拖动区域。官方仓库地…

OpenHarmony当前进展和未来趋势

操作系统自20世纪50年代诞生,经历了从专用操作系统到通用操作系统的转变。整体可以将操作系统的发展历史分为3个阶段:PC时代、移动互联网时代、万物互联时代。 PC时代主要以计算机为主,用户规模从1970年的10亿增长到1990年的30亿。这一时代诞…

鸿蒙原生应用/元服务实战-DevEco Studio 模拟器资源经常不足

DevEco Studio 模拟器资源经常不足,模拟器是最方便和最广泛的开发者可以快速体验应用元服务效果的途径,还是要加强。 除了Wearable,其他都用不了。 只能用预览器看效果,或者使用远程真机或者本地真机了。 在API9,比如分享等&…

leetcode第 381 场周赛最后一题 差分,对称的处理

第 381 场周赛 - 力扣(LeetCode)最后一题3017. 按距离统计房屋对数目 II - 力扣(LeetCode) dijkstra超时了,看了灵神的解题方法力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台,其…

二.用户与权限管理(二)

用户与权限管理 5.角色管理5.1角色的理解5.2创建角色5.3给角色赋予权限5.4查看角色的权限5.5回收角色的权限5.6删除角色5.7给用户赋予角色5.8激活角色5.9撤销用户角色5.10设置强制角色(mandatory role) 6.配置文件的使用6.1配置文件格式6.2 启动命令与选项组6.3 特定MySQL版本的…

java数组ArrayList(存对象)

1、dade文件 package model;public class dade {private int id;private String name;public dade() {}public dade(int id, String name) {this.id id;this.name name;}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {…

推荐IDEA一个小插件,实用性很高!!

插件: Convert YAML and Properties File 由于每个人的开发习惯不同,在开发过程中会遇到各种小细节的问题。今天给大家介绍一个小插件,作用不大,细节很足。 就是properties类型文件和yml文件互相自由转换 解决:…

【webrtc】neteq测试工程

设置git代理 $ git config --global http.https://github.com.proxy socks5://127.0.0.1:7890 git config --global https.https://github.com.proxy socks5://127.0.0.1:7890导入cmake直接构建 win32 debug v143 编译opus Build started...

云原生全栈监控解决方案(全面详解)

【作者】JasonXu 前言 当前全球企业云化、数字化进程持续加速,容器、微服务等云原生技术在软件架构中快速渗透,IT 架构云化、复杂化持续驱动性能监控市场。企业云化、数字化持续转型,以及为了考虑系统的弹性、效率,企业软件开发中…

【linux】 查看 Linux 重启历史记录(reboot)

了解 Linux 重启日志 /var/log 目录隐藏着 Linux 日志机制的核心信息,它是记录系统活动的宝贵仓库。然而,仅仅有日志还不够,真正的难题在于,如何从大量数据中提炼出与系统重启相关的关键信息。 在 /var/log 目录中,可…

简单但全面了解一下webSocket

文章目录 webSocket是一种协议,设计用于提供低延迟、双全工和长期运行的连接什么是实时通信? webSocket之前的世界webSocket的优势为什么需要心跳机制?webSocket的限制 webSocket是一种协议,设计用于提供低延迟、双全工和长期运行…

CRM系统的痛点,如何解决?

在当今竞争激烈的商业世界中,客户关系管理(CRM)数字化转型已经成为大企业成功的重要秘诀。大型跨国公司如亚马逊、苹果和微软等已经在CRM数字化方面走在了前列,实现了高度个性化的客户体验,加强了客户忠诚度。 然而&a…

Conda python管理环境environments 四 从入门到精通

Conda系列: 翻译: Anaconda 与 miniconda的区别Miniconda介绍以及安装Conda python运行的包和环境管理 入门Conda python管理环境environments 一 从入门到精通Conda python管理环境environments 二 从入门到精通Conda python管理环境environments 三 从入门到精通…

【Linux】解决能访问github但克隆不了的问题

文章目录 1.查看你的代理的地址:2.git设置3.尝试clone 1.查看你的代理的地址: 2.git设置 先看看当前的git设置 $ git config --list然后git中要设置好对应的地址 git config --global http.proxy 127.0.0.1:78903.尝试clone $ git clone https://git…

服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?

导言: 在当今数字化的时代,恶意软件攻击已经变得越来越复杂和狡猾,[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…

机器学习实验报告-集成学习

目录 一、集成学习介绍 1.1集成学习的引入 1.2集成学习发展史 1.3集成学习的学习组织方式 1.3.1并联组织关系 1.3.2串联组织关系 1.4集成学习及其实现方法概述 二、集成学习实现方法 2.1Boosting 2.1.1基本过程 2.1.2注意点 2.2bagging 2.2.1基本过程 2.2.2注意点…

QT实现USB通讯

一.概述 QT实现USB通讯这里主要介绍两种方法,一种是通过libusb库来实现usb通讯,一种是通过hidapi库实现通信。 1.介绍libusb库 libusb 是一个 C 库,提供对 USB 设备的通用访问。 可移植的:使用单个跨平台API,它可以…

一、防御保护---信息安全概述

一、网络安全防御---信息安全概述 1.信息安全现状及挑战1.1 网络空间安全市场在中国,潜力无穷1.2 数字化时代威胁升级1.3 传统安全防护逐步失效1.4 安全风险能见度不足1.5 缺乏自动化防御手段1.6 网络安全监管标准愈发严苛 2.信息安全概述2.1 简介2.2 常见的网络安全…