Docker学习笔记11

news2024/10/7 18:32:20

Docker容器镜像:

1)docker client 向docker daemon发起创建容器的请求;

2)docker daemon查找本地有客户端需要的镜像;

3)如无,docker daemon则到容器的镜像仓库中下载客户端需要的镜像;

4)拿到容器镜像后启动容器。

容器镜像介绍:

Docker镜像就是一组只读的目录,或者叫只读的Docker容器模板。镜像中含有一个Docker容器运行所需要的文件系统,所以我们说Docker镜像是启动一个Docker容器的基础。

可以将Docker镜像看成是Docker容器的静态时,也可将Docker容器看成是Docker镜像的运行时。

从Docker的官方文档来看,Docker容器的定义和Docker镜像的定义几乎是相同的,Docker容器和Docker镜像的区别主要在于Docker容器多出了一个可写层。

容器中的进程就运行在这个可写层,这个可写层有两个状态,即运行态和退出态。当我们dockerrun运行容器后,docker容器就进入了运行态,当我们停止正在运行的容器时,docker容器就进入了退出态。

当我们将容器从运行态转为退出态的时候,期间发生的变更都回写入到容器的文件系统中(需要注意的是,此处不是写入到docker镜像中。)

 联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统。它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,应用看到的是挂载的最终效果。

联合文件系统是实现Docker镜像的技术基础。Docker镜像可以通过分层来进行继承。例如:用户基于基础镜像(用来生成其他镜像的基础,往往没有父镜像)来制作各种不同的应用镜像。这些镜像共享同一个基础镜像层,提高了存储效率。此外,当用户改变了一个Docker镜像(比如升级程序到新的版本),则会创建一个新的层layer,因此,用户不用替换整个原镜像或者重新建立,只需要添加新层即可。用户分发镜像的时候,也只需要分发被改动的新层内容(增量部分)。这让Docker的镜像管理变得十分轻量级和快速。

基础镜像支持tomcat应用的运行。

容器镜像是用来启动容器的,容器镜像就是文件系统,将文件系统进行分层管理,通过联合文件系统进行分层叠加。在可写层来安装新的软件。

基础镜像:

1)部署一台主机,最小化软件安装操作系统

2)把最小化软件安装操作系统进行打包,打包操作系统的根目录

排除/proc及/sys

tar --numeric-owner --exclude=/proc --exclude=/sys  -cvf centos7u6.tar /

说明:

1、 --numeric-owner: 以UID和GID代替用户名和组名 (numeric:数字、分数)因为有些用户的UID和GID不一样。文件的属主和属组全部替换成数字。

2、--exclude=/proc(给每个进程创建文件夹,文件描述符相关信息) --exclude=/sys(内核程序使用的目录)在新的docker镜像不包括上述目录

3、-cvf:压缩选项

4、centos7u6.tar为目标文件

5、/ 代表从根开始

3)把获取的根打包文件导入到Docker Host中。这样就得到了基础镜像。

docker import centos7u6.tar centos7u6:latest
[root@vm1 ~]# docker import --help

Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Import the contents from a tarball to create a filesystem image

Aliases:
  docker image import, docker import

Options:
  -c, --change list       Apply Dockerfile instruction to the created image
  -m, --message string    Set commit message for imported image
      --platform string   Set platform if server is multi-platform capable
[root@vm1 ~]#

再次说明:

Usage:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

导入的过程中,给镜像起名字加版本。

import和Export,save和load都是成对出现的。

4)检查:

docker images

docker image ls

通过这个试验,我们看到镜像是什么,是文件系统。

5)拿基础镜像来启动容器:

docker run -it --name c1000 centos7u6:latest /bin/bash

在容器中,我们进入到/proc中,看到的内容就是容器中的进程。

应用镜像制作:

应用镜像的概念:指应用程序运行的环境。

基础镜像,安装apache应用,打包成一个应用镜像,启动容器的时候,再也不用安装apache,只要把网页的内容放到目录中。程序员不用安装任何软件。

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

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

相关文章

线性代数基础--向量

目录 向量的概念 基本概念 抽象概念 向量的意义 几何意义 物理意义 欧式空间 特点和性质 行向量与列向量 行向量 列向量 两者的关系 向量的基本运算与范数 向量的基本运算 向量的加法 数乘运算(实数与向量相乘) 转置 向量的范数 向量…

echart 设置柱状图y轴最大刻度

start 最近接到需求希望柱状图 y轴最大高度可以略高一些;柱状图的数据能展示在柱状图的上方 记录一下相关配置项 解决方案 官方文档说明 https://echarts.apache.org/zh/option.html#xAxis.max 效果 代码 {key: business,title: {text: 业务领域分类,textSt…

DAY32:回溯算法(七)全排列+全排列Ⅱ(排列问题)

文章目录 46.全排列思路树形图used数组的作用 伪代码完整版时间复杂度总结 47.全排列Ⅱ思路树形图 完整版时间复杂度总结 46.全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入&#xf…

C#和LABVIEW的对决:哪种上位机编程语言更适合你?

今天,我们将谈论主流的上位机编程语言。你听说过C#和LABVIEW吗?它们是的上位机编程语言,C#作为自动化主流编程语言特别受欢迎,LABVIEW用于自动化测试, 首先,我们来了解C#语言。C#是一种文本语言&#xff0c…

2023年江西省研究生数模竞赛植物的多样性

2023年江西省研究生数模竞赛 植物的多样性 原题再现 植物作为食物链中的生产者,通过光合作用吸收二氧化碳,制造氧气,同时为其他生物提供食物和栖息地,支持它们的生存。植物在生态系统中还起到防止水土流失、缓解温室效应等作用。…

新手小白编程利器!Debug 断点调试工具IDEA

前言 很多新手小白在学习的时候总会遇到一个问题: 我们一运行程序,只能看到程序最后的结果,但是这个程序究竟是怎么一步步运行出这样的结果呢?如果有一个工具能够让我们看到我们程序的执行流程该有多好~ 这就需要用到新手小白编程…

modbus转MQTT网关支持自定义JSON格式

在工业自动化系统中,Modbus是一种非常常见的通信协议,而OPC UA则是近年来兴起的一种新型通信协议。由于各种设备之间使用的通信协议不尽相同,因此需要一种能够实现多种协议转换的网关产品。BL110网关就是一款能够实现Modbus到OPC UA转换的产品…

硬件设计-PLL篇(下)

目录 概要 整体架构流程 技术名词解释 技术细节 1.环路滤波器采用有源滤波器还是无源滤波器?、 2.如何设计 VCO 输出功率分配器?、 3.如何设置电荷泵的极性? 4.锁定指示电路如何设计? 小结 概要 提示:这里可以添加技术…

学习Spring的补充

《JavaEE 框架整合开发入门到实践 》这本书还是太浅了 ,需要补充一些基本的知识。 首先修改一下快捷键,使得可以像eclipse一样使用alt/ 快速补全代码。 参考博客: (33条消息) IDEA 设置代码提示或自动补全的快捷键_idea补全提示_thirty.st…

【Java核心技术】面向对象编程

面向对象编程 1、面向过程与面向对象面向过程(POP)与面向对象(OOP)面向对象的三大特征面向对象的思想概述 2、Java语言基本元素:类和对象类和对象类和对象的使用(面向对象思想落地的实现)对象的创建和使用:内存解析 3、类的成员之…

【瑞萨RA6系列】CoreMark移植完全指南——UART输出和SysTick计时

一、CoreMark简介 什么是CoreMark? 来自CoreMark首页的解释是: CoreMark is a simple, yet sophisticated benchmark that is designed specifically to test the functionality of a processor core. Running CoreMark produces a single-number scor…

tomcat进程注入

跟随上一篇《java进程注入》 这里使用memShell https://github.com/rebeyond/memShell 将agent.jar和inject.jar放到tomcta的web目录下 然后输入命令注入 效果: 注入成功后 可以看到agent.jar文件为了防止发现,自动清除,而且重启电脑之后&…

【Python数据分析】Python中axis的理解

axis用来为超过一维的数组定义属性。 理解时从数据变化的方向入手! 以二维数据为例,在二维数据中,1表示横轴,方向从左到右;0表示纵轴,方向从上到下从数轴的方向入手,理解数据变化,a…

测试这碗饭,你还拿得稳吗?

今年测试行业格外寒冷,大部分人为了糊口饭吃,紧紧地捂住了本来已经很嫌弃的饭碗,以便挺过寒冬迎接春天。 公司天天加班,新出了各种扣款制度,为了上老下小我忍了。 2022年度的绩效,2023年都要过完了&#xf…

Windows同时安装两个版本JDK,并实现动态切换

1、载安装两个版本的JDK 安装后,默认路径C:\Program Files\Java。 实际上JDK8有两个包一个jdk1.8.0_311,一个jre1.8.0_311。 JDK11只有一个jdk-11.0.16.1。 2、系统环境配置 设置JAVA_HOME 在环境变量中选中Path,点击编辑 点击新建&…

DARAZ使用虚拟信用卡购物教程

Daraz为阿里巴巴南亚电商平台,市场覆盖巴基斯坦、孟加拉、斯里兰卡、尼泊尔和缅甸超过5亿人口级别市场,是南亚地区最受欢迎的在线购物网站,购物APP NO.1。 注册一个DARAZ的买家账号。 找到需要购买的商品,点击Buy Now进行购买 填…

Sip通话,qq通话,微信通话,普通的通话的条件和过程描述

SiP通话 SIP电话是基于SIP(Session Initiation Protocol,会话初始化协议)协议实现的通信。SIP是一种应用层协议,用于建立、修改和终止多媒体会话,如语音通话、视频通话等。SIP电话通过SIP协议进行信令交换和媒体流传输…

【MySQL学习笔记】(二)MySQL操作库基础

库的操作 1 创建数据库2 关于字符集和校验规则2.1 查看系统字符集以及校验规则2.2 查看数据支持的字符集2.3 查看数据库支持的字符集校验规则3 删除数据库4 查看并使用数据库5 修改数据库6 查看连接情况7 备份和恢复 1 创建数据库 1)创建数据库 在学习笔记&#xf…

ChatGLM-6b本地安装手把手教学

什么是ChatGLM-6B ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存&…

Redis【入门篇】---- Redis的Java客户端-SpringDataRedis

Redis【入门篇】---- Redis的Java客户端-SpringDataRedis 1. 快速入门1. 导入pom坐标2. 配置文件3. 测试代码 2. 数据序列化器3. StringRedisTemplate4. Hash结构操作 SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块…