当前位置: 首页 > news >正文

【docker】Dockerfile练习

1、overlay文件系统原理测试

cd /mnt
mkdir A B C worker merged
echo "From A">./A/a.txt
echo "From A">./A/b.txt
echo "From A">./A/c.txt
echo "From B">./B/a.txt
echo "From B">./B/d.txt
echo "From C">./C/b.txt
echo "From C">./C/e.txt
tree .  

在这里插入图片描述

mount -t overlay overlay -o lowerdir=A:B,upperdir=C,workdir=worker /mnt/merged

在这里插入图片描述
可以看到我们原本 A B C 三个目录下的文件已经被合并,相同文件名的文件将会选择性的显示,在merged 中会显示离 merged 层更近的文件,upper 层比 lower 层更近,同样的 lower层中,排序靠前比排序靠后更近,在这个例子中就是 A 比 B 更靠近 merged 层根据这个规律,我们可以先分析下 merged 层中的文件来源, a.txt 在 A 和 B 中都有,但 A 比 B 更优先,所以 merged 中的 a.txt 应该来自 A 目录, b.txt 在 A 和 C 中都有,但 C 是 upper 层,所以b.txt 应该来自 C 目录,我们可以核实一下。
在这里插入图片描述
在这里插入图片描述

修改 merged 层的 a.txt 文件,可以看到 merged 层的 a.txt 内容虽然改变,但 A 目录(只读层)下的 a.txt 内容并没有发生变化,而在 C 目录(读写层)下多了一个 a.txt 文件,内容就是我们修改过的 a.txt 的内容,这就是只读层与读写层的关系,在 merged 目录对文件进行修改并不会影响到只读层的源文件,只会在读写层进行编辑
在这里插入图片描述
删除c.txt

rm c.txt

可以看到在 merged 目录中已经没有 c.txt 文件,但在 C 目录下却多了一个 c.txt ,这个文件就是我们在一开始提到的 whiteout文件,它是一种主/次设备号都为0的字符设备,overlay 文件结构通过使用这种特殊文件来实现文件删除功能,在 merged 目录下使用 ls 命令来查看文件时,overlay 会自动过滤掉 upper 目录下的 whiteout 文件以及在 lower 目录下的同名文件,以此来实现文件删除效果
在这里插入图片描述

2、使用dockerfile构建有可用yum源的镜像

FROM centos
RUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*
RUN yum clean all && yum makecache
docker build -t test2:1.0 .      

3、使用dockerfile基于题2镜像构建jdk镜像

FROM test2:1.0RUN yum install -y wget rpmRUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm -O /opt/jdk-8u131-linux-x64.rpmRUN rpm -ivh /opt/jdk-8u131-linux-x64.rpm 

4、使用dockerfile基于题3镜像构建tomcat镜像

 wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.99/bin/apache-tomcat-8.5.99.tar.gzvim Dockerfile
FROM centosRUN sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g" /etc/yum.repos.d/CentOS-*RUN yum clean all && yum makecache && yum install -y wget rpm
RUN wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm -O /opt/jdk-8u131-linux-x64.rpmRUN rpm -ivh /opt/jdk-8u131-linux-x64.rpm
ADD apache-tomcat-8.5.99.tar.gz /opt/javaweb/ 
RUN mkdir -p /usr/local/tomcat/
RUN mv /opt/javaweb/apache-tomcat-8.5.99 /usr/local/tomcat/RUN chmod +x /usr/local/tomcat/apache-tomcat-8.5.99/bin/catalina.sh
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.99/
#  设置启动命令
ENTRYPOINT   [ "/usr/local/tomcat/apache-tomcat-8.5.99/bin/catalina.sh", "run"] # 暴露 HTTP 端口
EXPOSE 8080
docker build -t test2:4.0 .       
docker run -itd -p 8888:8080 test2:4.0       

在这里插入图片描述

相关文章:

【docker】Dockerfile练习

1、overlay文件系统原理测试 cd /mnt mkdir A B C worker merged echo "From A">./A/a.txt echo "From A">./A/b.txt echo "From A">./A/c.txt echo "From B">./B/a.txt echo "From B">./B/d.txt echo &quo…...

数据可视化的魔法:Python Matplotlib库的奇妙之旅

标题:数据可视化的魔法:Python Matplotlib库的奇妙之旅 在数据科学和分析领域,数据可视化是一种将复杂数据转换为图形表示的强有力工具,它可以帮助我们更直观地理解数据。Python中的Matplotlib库是进行数据可视化的瑞士军刀&…...

Python数据科学的秘密武器:Pandas库的深度解析

标题:Python数据科学的秘密武器:Pandas库的深度解析 Python作为数据科学领域的宠儿,其强大的数据处理能力离不开Pandas库的加持。Pandas是一个开源的数据分析和操作库,它提供了快速、灵活和表达力强的数据结构,旨在使…...

云计算实训24——python基本环境搭建、变量和数据类型、数据集合、py脚本

一、python环境搭建 确保拥有阿里云镜像 查看python环境 [rootpython ~]# yum list installed | grep python 查看epel是否安装 [rootpython ~]# yum list installed | grep epel 安装epel [rootpython ~]# yum -y install epel-release.noarch 查看是否安装python3 [rootpyt…...

深入了解网络性能监控(NPM):优化网络性能的关键

目录 网络性能监控(NPM)是什么? 关键网络性能指标 案例分享:如何利用NPM优化网络性能 实用技巧:如何高效运维你的网络 结论 随着企业依赖于互联网和内部网络进行业务运营,网络的稳定性和性能显得尤为重…...

Vue引入使用iconfont字体图标

由于element-ui或element-plus提供的图标有时候并不能满足日常需求,所以这篇介绍一下前端引入阿里巴巴矢量图标库使用,不止是vue使用,不限于vue2、vue3,html或是其他框架也是同样的道理,只要引入都是同样可以使用的。 1. 首先进入阿里巴巴矢量图标库官网 官网:https://…...

Doc2Vec

Doc2Vec 是一种扩展自 Word2Vec 的算法,它不仅可以生成词向量,还可以生成句子或文档的向量。下面是一个使用 Doc2Vec 比较两个句子的具体过程: 步骤 1: 训练 Doc2Vec 模型 首先,你需要有一个训练好的 Doc2Vec 模型。训练过程大致…...

MES生产过程透明管理,实施掌握生产每个环节

MES(制造执行系统)生产过程透明管理,旨在通过集成多种技术手段和管理模块,实现对生产过程的实时监控和精准掌握,确保每个生产环节都能被清晰地记录和追踪。以下是对MES生产过程透明管理的详细阐述: 一、MES…...

Java解析压缩包,并根据指定文件夹上传文件

方法 public Multimap<String, String> getCodeBucketMultimap(HttpServletRequest request)throws IOException {MultipartHttpServletRequest multiRequest (MultipartHttpServletRequest) request;// 基于servlet获取文件流List<MultipartFile> multipartFile…...

【HTML】纯前台字符验证码

效果图&#xff1a; 大致思路&#xff1a; 1.在<canvas>画布里写出几个字符&#xff1b; 2.给字符一个随机的角度和颜色&#xff1b; 3.给字符上画出一些干扰线和干扰点。 <canvas width"100" height"30" id"canvasRef" click"…...

如何在 Vue.js 项目中动态设置页面标题

目录 方法 1:使用 Vue Router 的元信息(meta) 步骤 1: 配置路由元信息 步骤 2: 使用路由守卫设置标题 方法 2:在组件内设置标题 在组件挂载时设置标题 使用响应式数据动态更新标题 在开发 Vue.js 应用时,设置动态页面标题是常见需求,尤其当应用包含多个页面时,为每…...

Eval绕过限制参数限制

PHP Eval函数参数限制在16个字符 PHP代码 <?php$param $_REQUEST[param]; if (strlen($param) < 17 && stripos($param, eval) false && stripos($param, assert) false){eval($param);}?># 部署环境属于ubuntu系统 通过GET传参绕过 由于是…...

计算机网络408考研 2021

2021 计算机网络408考研2021年真题解析_哔哩哔哩_bilibili 1 1 11 1 1 11...

element table表格树形数据展示

element table表格树形数据展示 1、效果 2、代码 <el-table ref"pointMultipleTable" border class"table-box" :data"[damActiveObj]"row-key"id" :tree-props"{ children: children }" :expand-row-keys"expand…...

Ubuntu 安装 Snipaste

一、下载 Snipaste 下载Snipastehttps://zh.snipaste.com/ 二、在/opt 创建 Snipaste 目录&#xff0c;创建 bin 和 icon 子目录&#xff0c;将 Snipaste.AppImage 移动到 bin 目录 三、创建快捷键图标 1. 创建桌面图标&#xff0c;右键→允许运行 yammiemy-pc >/home/y…...

NET8环境WebAPI实现文件的压缩及下载

目录 1、文件下载的原理2、具体实现2.1 提前准备2.2 服务器端的实现2.3 请求端的实现 3、代码下载4、更多特性4.1 单独压缩文件4.2 解析4.2.1 整体解析4.2.2 单个文件解析 4.3 其他4.3.1 设置压缩级别4.3.2 密码保护4.3.3 进度反馈 5、参考资料 1、文件下载的原理 在实际应用环…...

Ubuntu 18 使用NVIDIA上的HDMI输出声音

前言 在未做修改之前&#xff0c;Settings -> Sound -> Output 里面只有 Digital Output(S/PDIF) - Built-in Audio 不显示HDMI的输出设备检查当前存在的音频设备 sudo lspci -v | grep -A7 -i "audio"输出&#xff1a; 从输出可以看出来是有两个设备的 00:1…...

C#模拟量线性变换小程序

1、一步步建立一个C#项目 一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客文章浏览阅读1.7k次,点赞2次,收藏4次。本文详细介绍了如何使用C#构建一个项目,通过S7net库连接并连续读取S7-1200 PLC的数据,包括创建窗体应用、配置存储位置、安装S7net库…...

跟《经济学人》学英文:2024年08月10日这期 How AI models are getting smarter

How AI models are getting smarter Deep neural networks are learning diffusion and other tricks 原文&#xff1a; Type in a question to ChatGPT and an answer will materialise. Put a prompt into DALL-E 3 and an image will emerge. Click on TikTok’s “for y…...

Spring Web MVC入门(上)

1. Spring Web MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc)&#xff0c;但它通常被称为“spring MVC”&#xff1b; 什么是Servlet呢? Servlet…...

利用快马AI快速生成浏览器内容增强插件原型

利用快马AI快速生成浏览器内容增强插件原型 最近在开发一个浏览器插件时&#xff0c;发现从零开始搭建整个项目框架特别耗时。特别是当需要快速验证一个插件创意是否可行时&#xff0c;传统开发方式往往需要花费大量时间在基础架构上。这时候&#xff0c;我发现InsCode(快马)平…...

Azure DevOps 自托管 Agent 如何用 Service Principal 安全接入 Azure

Azure DevOps 使用服务主体配置自托管代理配置指南1. 概述2. 在 Azure AD 中创建服务主体 (SP)3. 授予 Azure DevOps 权限3.1. 组织层级&#xff1a;用户身份与访问级别3.2. 组织层级&#xff1a;Agent pools管理员3.3. 在 Linux VM 上安装和配置代理3.4. 启动并设置为系统服务…...

AI辅助开发:利用快马智能模型构建免费节点智能推荐引擎

最近在做一个免费节点智能推荐的小工具&#xff0c;发现用AI辅助开发真的能省不少事。刚好用InsCode(快马)平台试了试&#xff0c;效果比预期好很多。记录下实现思路和踩坑经验&#xff0c;给有类似需求的同学参考。 需求拆解与模型选择 核心是要根据用户输入自动匹配最优节点。…...

用Anything to RealCharacters为游戏角色“拍照”:生成高质感真人定妆照

用Anything to RealCharacters为游戏角色"拍照"&#xff1a;生成高质感真人定妆照 1. 引言&#xff1a;游戏角色的"数字摄影棚" 想象一下&#xff0c;你精心设计的游戏角色突然从屏幕里走出来&#xff0c;站在真实的摄影棚中&#xff0c;专业的灯光打在他…...

TlbbGmTool:重构游戏管理体验的5大架构创新解析

TlbbGmTool&#xff1a;重构游戏管理体验的5大架构创新解析 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 从命令行困境到可视化治理的游戏运维实践指南 一、价值定位&#xff1a;重新定义游戏管理…...

5分钟部署MGeo:中文地址相似度识别零基础教程

5分钟部署MGeo&#xff1a;中文地址相似度识别零基础教程 你是不是遇到过这样的问题&#xff1f;手里有两份地址数据&#xff0c;一份来自电商订单&#xff0c;一份来自物流系统&#xff0c;明明应该是同一个地方&#xff0c;但写法五花八门——“北京市朝阳区望京街1号”、“…...

ModTheSpire:革新性模组加载器 | 为《杀戮尖塔》玩家打造一站式扩展平台

ModTheSpire&#xff1a;革新性模组加载器 | 为《杀戮尖塔》玩家打造一站式扩展平台 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 核心优势&#xff1a;如何突破游戏扩展的三大瓶颈&…...

OpenClaw异常处理:Qwen3-4B模型的任务失败恢复机制

OpenClaw异常处理&#xff1a;Qwen3-4B模型的任务失败恢复机制 1. 为什么需要关注OpenClaw的异常处理&#xff1f; 上周我让OpenClaw帮我整理一个月的会议录音转文字稿&#xff0c;结果第二天发现它卡在第七个文件就停止了。这种半途而废的情况在使用本地大模型时特别常见——…...

Phi-4-mini-reasoning集成Visual Studio Code:智能代码补全与调试插件开发

Phi-4-mini-reasoning集成Visual Studio Code&#xff1a;智能代码补全与调试插件开发 1. 为什么开发者需要AI驱动的IDE插件 现代软件开发正变得越来越复杂&#xff0c;开发者每天要面对海量代码库、频繁的上下文切换和层出不穷的新技术。传统IDE虽然提供了基础补全功能&…...

Laravel Telescope门禁监控终极指南:10个技巧安全追踪用户权限和授权逻辑

Laravel Telescope门禁监控终极指南&#xff1a;10个技巧安全追踪用户权限和授权逻辑 【免费下载链接】telescope An elegant debug assistant for the Laravel framework. 项目地址: https://gitcode.com/gh_mirrors/te/telescope Laravel Telescope 是 Laravel 框架的…...