安装配置docker&maven环境

简介: Docker 是一个开源的应用容器引擎。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

原文相关视频

Docker是什么

Docker 是一个开源的应用容器引擎。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

docker三个基本概念

  • Image(镜像)
  • Container(容器)
  • Repository(仓库)

我们可以通过安装Docker,结合著名的漏洞环境集合Vulhub,快速的来搭建我们想要的漏洞验证环境。因Vulhub是基于Docker和Docker-compose来搭建的。安全人员可以极其便利地使用Docker生成一个带有特定漏洞的容器进行调试分析,从而减少在环境配置上的时间消耗,更专注于研究漏洞本身。

Docker的下载与安装

不同系统下的docker的下载与安装

我们这里以macos系统安装为例,mac可以选择brew安装也可以直接选择手动安装,这里我们选择手动安装


b159778a1c90925722539568d7aafdb9.png

跟其他软件安装一样,直接按照提示即可,最后我们可以在应用中看到Docker 图标,点击运行即可

dd20fded039262f9811b6583959f106e.png

查看docker安装版本命令

docker --version
Docker version 20.10.17, build 100c701

Docker基本使用方法

在docker开启后,可以使用命令行方式进行镜像的搜索、拉取、查看等,或者容器的开启与关闭等操作。

搜索镜像

search命令可以搜索指定名称和仓库的镜像,例如搜索tomcat的镜像

docker search tomcat

1331ae6a7dc07df049692196523ce496.png

拉取镜像

pull 命令可以拉取指定仓库和名称以及标签的镜像。当未指定所获取镜像的tags(标签)时,则自动拉取latest(最新)版本的镜像。

docker pull dordoka/tomcat

114ffbaf090800a6a3fdb6c7e5445f65.png

查看镜像

images命令可以读取已经拉取到本地的镜像文件,并列出镜像所存放仓库名、TAG标签、镜像编号、创建时间以及镜像大小。

docker images

删除镜像

rmi指令可以删除已经拉取到本地的镜像,记得在删除镜像前需要先停止容器

docker rmi 镜像名

生成容器

run指令可以以指定的镜像为模板生成对应的容器。我们这里启动一个Tomcat的容器,希望可以访问它的8080端口,并在容器启动后在后台默默运行

docker run --name my_tomcat -it -d -p 8080:8080 tomcat

2c0c772a83b7a75734f10982f277e8f7.png

查看容器

docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS                    NAMES
987a78763b16   tomcat    "catalina.sh run"   6 minutes ago   Up 6 minutes   0.0.0.0:8080->8080/tcp   my_tomcat

停止容器

docker stop CONTAINER ID

启动容器

docker start CONTAINER ID

进入容器

docker exec -it [CONTAINER ID] /bin/bash 

退出容器

exit

删除容器

docker rm [CONTAINER ID]

使用Vulhub快速搭建漏洞环境

** Vulhub的下载与安装**

Vulhub Github地址:https://github.com/vulhub/vulhub

下载并解压Vulhub后,可以看到相应的漏洞环境,我们要启动对应的漏洞环境只需进入相应的文件夹使用Docker-compose命令启动即可。

746b71231331422a9ac89939466b4f86.png

启动漏洞环境

本次使用CVE-2020-1938为例,进入到相对应的文件夹后,编译完环境后使用docker-compose up –d启动命令会根据该文件夹中的docker-compose.yml定义将相应的镜像拉取到本地,并且会自动启动容器以及进行必要的端口映射。

# 自动化编译环境
docker-compose build
# 启动整个环境
docker-compose up -d
# 删除环境
docker-compose down -v

9645ee9236b562b84c549f6d4e9519e3.png

启动后访问其8080端口即可

61cbb5381d3877f109355518e0b5bfeb.png

Maven基础知识及掌握

Maven是一个项目构建工具,可以对Java项目进行构建和管理,也可以用于各种项目的构建和管理。

pom.xml文件介绍

pom.xml文件使用XML文件结构,该文件用于管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等。Maven项目中必须包含pom.xml文件。了解pom.xml文件结构有助于审计应用程序中所依赖的组件和发掘隐藏风险。

pom.xml定义依赖关系

pom.xml文件中的dependencies和dependency用于定义依赖关系,dependency通过groupId、artifactId以及version来定义所依赖的项目。引入Fastjson  1.2.24版本组件的Maven配置信息。其中groupId、artifactId和version共同描述了所依赖项目的唯一标志。

Maven的使用

IDEA中可以在新建项目时选择创建Maven项目。选择创建Maven项目,右侧窗口显示的是Maven项目的模板。直接使用默认模板并单击“Next”按钮,填写Name(项目名称)和Location(项目保存路径)后单击“Finish”按钮,即可完成项目的创建。

3602e66ac8ab0719d6ed8d1901959b75.png

创建完成的Maven项目中包含该pom.xml文件。pom.xml文件描述了项目的Maven坐标、依赖关系、开发者需要遵循的规则、缺陷管理系统、组织以及licenses,还有其他所有的项目相关因素。对于我们代码审计来说,可以从pom.xml中快速的审查当前Java应用程序中是否使用了存在安全隐患的组建,以及快速的搭建特定版本的漏洞环境。

73073147f3ab831edf7b3cca8067734e.png

这里以搭建Fastjson 1.2.24之前版本的反序列化漏洞环境,需要引入版本小于1.2.24的Fastjson组件为例,引入Fastjson相应版本后右键单击pom.xml文件选择“Maven”选项,进行组件的自动获取。

aee8c83ca51f7431ffbeda4b86f4cc8a.png

关注 至察助安 获取更多优质网络安全知识,无优质不分享。

相关文章
|
23天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
94 5
|
3月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
257 16
|
9月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
258 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
5月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
322 18
|
4月前
|
弹性计算 关系型数据库 Nacos
低配阿里云 ECS 如何 docker 环境部署 NACOS : 单机版模式
NACOS 单机版 Docker 安装指南。使用指定端口和 custom.env 配置文件启动 Nacos 服务,适用于 2.X 版本,包含 gRPC 支持及 MySQL 数据源配置。 -e MODE=standalone \
390 5
|
5月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
224 8
|
4月前
|
存储 缓存 Serverless
【Azure Container App】如何在Consumption类型的容器应用环境中缓存Docker镜像
在 Azure 容器应用的 Consumption 模式下,容器每次启动均需重新拉取镜像,导致冷启动延迟。本文分析该机制,并提出优化方案:使用 ACR 区域复制加速镜像拉取、优化镜像体积、设置最小副本数减少冷启动频率,或切换至 Dedicated 模式实现镜像缓存,以提升容器启动效率和应用响应速度。
121 0
|
5月前
|
Ubuntu 机器人 开发者
Docker环境下的ROS Noetic:Ubuntu 20.04 系统下的解决方案
这就是在Docker环境下安装ROS Noetic在Ubuntu 20.04系统的一种简单方法,希望能对你有所帮助。
619 16
|
6月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
409 27