原本想用docker复现一下vul的漏洞。

装docker过程中遇到了很多问题,

昨天熬夜到凌晨三点都没弄完。

中午又找了找原因,终于全部解决了,

小结一下。

0x01 镜像

去官方下载了centos 8的镜像,

https://www.centos.org/

0x02 在vmware中安装centos系统

参考https://blog.csdn.net/babyxue/article/details/80970526

在安装过程中遇到第一个问题,卡在安装界面

通过百度和尝试,

发现在设置里的CD/DVD默认路径错误,

修改为centos 8镜像的路径即可。

1

0x03 尝试一键安装docker 失败

curl -s https://get.docker.com/ | sh

运行命令时,显示没有这个命令,

我尝试去掉了| sh,发现回显报错了很多,最后一个error,失败了。

0x04 尝试下载到主机上再拖入centos系统 失败

在我docker下载完成后,发现将docker没办法拖入centos系统

因为我还没有安装vmware tools

0x04 尝试安装wmare tools

参考https://jingyan.baidu.com/article/af9f5a2df3bce003150a4559.html

在安装过程中发现没有root权限,几经周折,才得以解决。

'su -'切换至root权限,

'su your-name'切换回原账号.

0x05 安装docker-compose

解压docker后,还要安装docker-compose。

Docker-compose用于组合服务与内网。

有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,

所以Vulhub选择使用docker-compose做环境一键化管理工具。

用户不再需要学习docker命令的各种参数与用法,

只需要简单地执行 docker-compose up -d即可启动容器。

由于centos 8并没有自带pip(自带了python3)

而安装docker-compose需要pip,所以目标又转向了pip的安装

curl -s https://bootstrap.pypa.io/get-pip.py | python3

安装完pip后就可以进行docker-compose的安装了。

pip install docker-compose

0x06 下载Vulhub

安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可

git clone https://github.com/vulhub/vulhub.git

0x07 意外发生,无法启动docker

下载完Vulhub后我发现竟然没法打开docker

查找了好久好久的资料,昨天晚上睡前都没解决。凌晨三点实在熬不住了。

今天起来又好好看了看报错,

发现了问题所在,一大长条的报错中有这样一句话

Error: Problem 1: problem with installed package podman-3.0.1-6.module_el8.4

即CentOS 8中安装Docker出现和Podman冲突

我又去查阅Podman

两种解决办法

第一种删除Podman

查看是否安装 Podman

rpm -q podman

podman-1.4.2-5.module_el8.1.0+237+63e26edc.x86_64

删除Podman

dnf remove podman

第二种尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用最佳选择的软件包

yum erase podman buildah

yum install docker-ce docker-ce-cli containerd.io

最终解决docker问题。

0x07 启动docker

启动docker:systemctl start docker

查看docker:ps -ef | grep docker

漏洞靶场的编译和运行: docker-compose build 或 docker-compose up -d

N[Q{N058T1UFTW8QDW6X{1L.png

docker-compose up -d运行后,会自动查找当前目录下的配置文件。

如果配置文件中包含的环境均已经存在,则不会再次编译;

如果配置文件中包含的环境不存在,则会自动进行编译。

所以,其实 docker-compose up -d命令是包含了 docker-compose build的。

如果更新了配置文件,你可以手工执行 docker-compose build来重新编译靶场环境。

0x08 关闭docker

docker-compose down

关闭正在运行的容器

删除所有相关容器

移除NAT(docker-compose在运行的时候会创建一个NAT网段)

但不会移除编译好的漏洞镜像,下次再执行 docker-compose up -d命令,就不需要再次编译相关镜像了。

关于docker复现vulhub环境的搭建的更多相关文章

  1. docker安装+测试环境的搭建---

    漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源: ...

  2. Web安全测试学习笔记 - vulhub环境搭建

    Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...

  3. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  4. 从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  5. Ubuntu 基于Docker的TensorFlow 环境搭建

    基于Docker的TensorFlow 环境搭建 基于(ubuntu 16.04LTS/ubuntu 14.04LTS) 一.docker环境安装 1)更新.安装依赖包 sudo apt-get up ...

  6. EOS Dapp开发(1)-基于Docker的开发环境搭建

    随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...

  7. PC(win10)上搭建 kubernetes + docker 集群环境

    最近kubernetes很火,加上我又在寻找适合快速搭建测试环境的方法,kubernetes的理念很适合用于测试环境的搭建. 因此在学习的过程中写下此教程(记录)以供回顾. 0x00 环境准备 0x0 ...

  8. Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  9. thinkphp5.x命令执行漏洞复现及环境搭建

    楼主Linux环境是Centos7,LAMP怎么搭不用我废话吧,别看错了 一.thinkphp5.X系列 1.安装composer yum -y install composer 安装php拓展 yu ...

随机推荐

  1. C#多线程---委托实现异步

    一.概述 通过调用ThreadPool的QueueUserWorkItem方法来来启动工作者线程非常方便,但委托WaitCallback指向的是带有一个参数的无返回值的方法. 如果我们实际操作中需要有 ...

  2. 11.SpringMVC之HttpMessageConverter

    HttpMessageConverter简介 HTTP 请求和响应的传输是字节流,意味着浏览器和服务器通过字节流进行通信.但是,使用 Spring,controller 类中的方法返回纯 String ...

  3. (四)HXDZ-30102-ACC检测心率血氧数据并通过串口助手显示

    主要参考模块说明书 写在前面的话 硬件原理我是真的搞不明白,所以心率血氧传感器数据检测就是模块卖家自带的代码... 我使用HXDZ-30102-ACC传感器也是偶然在网上检索到的,集成心率血氧和三轴加 ...

  4. spring动态切换数据源(一)

    介绍下spring数据源连接的源码类:| 1 spring动态切换连接池需要类AbstractRoutingDataSource的源码 2 /* 3 * Copyright 2002-2017 the ...

  5. Mysql基本知识整理

    一.简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 2.关系型数据库 ...

  6. Mybatis-Plus - 条件构造器 QueryWrapper 的使用

    目录 前言 查询示例 基础代码 QueryWrapper 的基本使用 QueryWrapper 的lambada写法 LambadaQueryWrapper 的使用 LambdaQueryChainW ...

  7. 深入理解SpringBoot核心机制《spring-boot-starter》

    深入理解SpringBoot核心机制<spring-boot-starter> 前言: 对于这几年java火爆天的springBoot我相信大家都有所使用过,在springBoot的项目中 ...

  8. window server 2008 系统加固

    1.更改管理员账号: 开始->运行->compmgmt.msc(计算机管理)->本地用户和组->用户,右击Administrator账户并选择"重命名",并 ...

  9. [推荐]MyBatis 核心技术与面试 34 讲

    MyBatis 核心技术与面试 34 讲 职业生涯中常被问到: 如何成为某方面的高手? 如何快速搞定某项技术? 我现在的水平处于什么阶段? -- 我暗暗想,我们从小学到中学到大学,经历了大考三六九.小 ...

  10. 洛谷P1449——后缀表达式(栈模拟)

    题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应 ...