使用docker在Ubuntu系统上搭建DVWA、pikachu靶场
本文介绍了在Ubuntu22.04虚拟机中配置Docker环境并搭建DVWA和Pikachu靶场的详细过程。首先指导配置阿里云镜像源安装Docker及Docker Compose,然后通过修改daemon.json配置国内镜像加速。随后分步演示了使用Docker搭建DVWA靶场(包括端口映射、容器管理等)和Pikachu靶场的完整流程,详细解释了相关命令参数。针对可能出现的问题(如GitHub访问
目录
附件1: 解决Ubuntu系统中GitHub下载速度慢的问题
前置条件:使用virtualBox创建Ubuntu22.04虚拟机
-
一、安装docker
-
配置镜像源
备份当前源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
编辑源列表问文件:
sudo vim /etc/apt/sources.list
添加或删除国内镜像源地址,以阿里云为例:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
注意:focal是Ubuntu 20.04的代号,根据你的Ubuntu版本,可能需要替换为bionic(Ubuntu 18.04)、xenial(Ubuntu 16.04)或其他代号。
更新软件包列表:
sudo apt update
安装docker
sudo apt install docker.io
#随后查看docker是否安装成功
sudo docker version
安装docker-compose
#先进行更新软件包
sudo apt update
#安装curl
sudo apt install curl
#下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-
compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
注意:解决Ubuntu系统中GitHub下载速度慢的问题,可以通过host修改,具体方式详见附件1.
#给文件执行权限
sudo chmod +x /usr/local/bin/docker-compose
换源:
- 创建文件
vim /etc/docker/daemon.json
- 添加镜像地址
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://kfwkfulq.mirror.aliyuncs.com"
]
}
注意:有时候地址会无法访问,可以自行访问试一下,如果不行,可以参考https://blog.csdn.net/u014390502/article/details/143472743 这个网址里的镜像.
- 重启docker
sudo service docker restart
- 查看是否生效
sudo docker info | grep Mirrors -A 4
二、使用docker搭建DVWA靶场
使用docker搜索DVWA靶场镜像
docker search dvwa
会得到以下列表相关镜像的列表,但是目前不能直接search,所以可以先在https://blog.csdn.net/u014390502/article/details/143472743这个网址使用某个可以访问的镜像网站搜索需要的镜像,然后再进行pull,如:Docker Hub 镜像加速服务,搜索dvwa,出现:
使用docker拉取指定镜像
docker pull citizenstig/dvwa
查看本地镜像信息
docker images
运行镜像,并且创建对应容器
docker run -dt --name dvwa -p 8999:80 --rm citizenstig/dvwa
参数解释详见附件2.
查看创建的容器id和映射端口
docker ps -s
与容器进行交互
docker exec -it dvwa /bin/bash
查看本机ip
hostname -I
或者 ip a
浏览器访问本机ip:端口,出现以下界面则搭建成
点击下面的“Create/Reset Database”,默认登录账号密码分别为admin、password
三、使用docker搭建pikachu靶场
查找镜像
使用https://docker-0.unsee.tech/ 查找pikachu镜像,得到如图所示:
-
拉取镜像
docker pull area39/pikachu
过程中可能出现如下问题:
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
解决方式详见附件3.
运行镜像,并且创建对应容器
docker run -dt --name pikachu -p 3306:80 --rm area39/pikachu
访问ip:端口,出现如下界面,表示搭建成功

附件
附件1: 解决Ubuntu系统中GitHub下载速度慢的问题
- 查询速度快的IP地址
在http://tool.chinaz.com/dns 中查询下面域名:
github.com
把TTL值最小的IP地址记录下来
2. 修改HOST文件
进入终端命令行模式,输入sudo gedit /etc/hosts
在文件最后添加相应的IP和域名。如下:记录更换 你查询的IP
192.30.253.112 github.com
3. 更新DNS缓存
sudo apt-get install nscd
sudo /etc/init.d/nscd restart
附件2:docker run命令解释
docker run:这是Docker中用于从镜像启动新容器的命令。
-dt:这个选项实际上是两个选项的组合,-d 和 -t,但在这里-t(分配一个伪终端或终端)通常与交互式容器一起使用,而-d(在后台运行容器,并打印容器ID)是这里的主要用途。不过,由于-t通常与-i(即使没有附加也保持STDIN打开)一起使用来创建交互式会话,而这里只单独使用了-d,所以-t在这里实际上是多余的,可能是一个误打或者习惯用法。正确的后台运行选项应该只是-d。
--name dvwa:这个选项允许你为即将创建的容器指定一个名称,这里是dvwa。这样,你就可以通过名称而不是容器ID来引用和操作容器了。
-p 8999:80:这个选项用于将容器内的端口映射到宿主机的端口上。这里,容器内的80端口(Web服务器通常监听的端口)被映射到宿主机的8999端口。这样,你就可以通过访问宿主机的8999端口来访问容器内的Web服务了。
--rm:这个选项告诉Docker,在容器停止后自动删除它。这有助于避免在Docker主机上积累大量不再需要的容器,从而节省空间。
citizenstig/dvwa:这是要从中启动容器的Docker镜像的名称。
附件3:解决拉取镜像问题
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
更多推荐
所有评论(0)