首页
/ DVWA项目Docker Compose部署指南

DVWA项目Docker Compose部署指南

2025-07-06 05:00:00作者:冯爽妲Honey

概述

DVWA(Damn Vulnerable Web Application)是一个专为安全测试人员设计的Web应用程序,包含多种常见的安全问题,用于学习和实践Web安全技术。本文将详细解析DVWA项目的Docker Compose部署配置,帮助安全研究人员和开发人员快速搭建测试环境。

环境准备

在开始部署前,请确保系统已安装以下组件:

  • Docker引擎
  • Docker Compose工具

配置解析

网络配置

networks:
  dvwa:

此配置定义了一个名为dvwa的Docker网络,用于容器间通信。DVWA应用和数据库将通过这个网络进行连接,确保服务间的隔离性和安全性。

数据卷配置

volumes:
  dvwa:

定义了一个名为dvwa的数据卷,用于持久化存储MariaDB数据库的数据。这样即使容器重启,数据库内容也不会丢失。

服务配置

DVWA应用服务

dvwa:
  build: .
  image: ghcr.io/digininja/dvwa:latest
  pull_policy: always
  environment:
    - DB_SERVER=db
  depends_on:
    - db
  networks:
    - dvwa
  ports:
    - 127.0.0.1:4280:80
  restart: unless-stopped

关键配置说明:

  1. build: . - 使用当前目录下的Dockerfile构建镜像
  2. image - 指定官方镜像源
  3. pull_policy: always - 总是拉取最新镜像
  4. environment - 设置环境变量,指定数据库服务器为db服务
  5. ports - 将容器80端口映射到主机的4280端口,且仅绑定到本地回环地址(127.0.0.1),增强安全性
  6. restart: unless-stopped - 容器意外退出时自动重启

数据库服务

db:
  image: docker.io/library/mariadb:10
  environment:
    - MYSQL_ROOT_PASSWORD=dvwa
    - MYSQL_DATABASE=dvwa
    - MYSQL_USER=dvwa
    - MYSQL_PASSWORD=p@ssw0rd
  volumes:
    - dvwa:/var/lib/mysql
  networks:
    - dvwa
  restart: unless-stopped

关键配置说明:

  1. 使用MariaDB 10版本的官方镜像
  2. 环境变量配置了:
    • 根用户密码
    • 创建的数据库名称
    • 应用使用的用户名和密码
  3. 数据卷挂载确保数据库持久化
  4. 同样配置了自动重启策略

部署步骤

  1. 将上述配置保存为docker-compose.yml文件
  2. 在终端中导航到文件所在目录
  3. 执行命令:docker-compose up -d
  4. 等待容器启动完成后,访问http://localhost:4280

安全建议

  1. 修改默认凭证:部署后应立即修改数据库和应用的管理员密码
  2. 网络隔离:考虑将DVWA部署在隔离的网络环境中,避免影响生产系统
  3. 访问限制:配置只允许特定IP访问管理界面
  4. 定期更新:保持Docker镜像为最新版本,解决已知问题

常见问题解决

  1. 端口冲突:如果4280端口被占用,可修改ports配置中的主机端口号
  2. 数据库连接失败:检查db服务是否正常启动,确认环境变量配置正确
  3. 持久化问题:确保数据卷权限设置正确,避免数据库写入失败

总结

通过Docker Compose部署DVWA环境,可以快速搭建一个包含完整问题演示环境的Web应用,极大方便了安全研究和教学工作的开展。本文详细解析了部署配置的各个部分,帮助用户理解每个配置项的作用,并能根据实际需求进行调整。