sqli-labs 靶机 环境搭建(docker方式)
字数 1084 2025-08-15 21:33:14
SQLi-Labs 靶机环境搭建(Docker方式) - 详细教学文档
1. 简介
SQLi-Labs 是一个专业的 SQL 注入练习平台,用于学习和实践 SQL 注入技术。本教程将详细介绍如何使用 Docker 方式快速搭建 SQLi-Labs 靶机环境。
2. 准备工作
在开始之前,请确保:
- 已安装 Docker 并正常运行
- 系统具有足够的权限执行 Docker 命令
- 网络连接正常,能够拉取 Docker 镜像
3. 详细搭建步骤
3.1 验证 Docker 运行状态
docker info
此命令用于查看 Docker 信息,确认 Docker 是否正常运行。
3.2 搜索 SQLi-Labs 镜像
docker search sqli-labs
此命令会在 Docker Hub 上搜索可用的 SQLi-Labs 镜像。
3.3 拉取 SQLi-Labs 镜像
docker pull acgpiano/sqli-labs
此命令会从 Docker Hub 下载 acgpiano/sqli-labs 镜像到本地。
3.4 查看已下载的镜像
docker images
此命令列出本地所有 Docker 镜像,确认 SQLi-Labs 镜像已成功下载。
3.5 运行 SQLi-Labs 容器
有两种端口映射方式可供选择:
方式一:映射到主机 80 端口
docker run -dt --name sqli-labs -p 80:80 --rm acgpiano/sqli-labs
方式二:映射到主机 8081 端口
docker run -dt --name sqli-labs -p 8081:80 --rm acgpiano/sqli-labs
参数解释:
-dt:后台运行容器--name sqli-labs:为容器命名为 "sqli-labs"-p 主机端口:容器端口:端口映射,将容器的 80 端口映射到主机的指定端口--rm:容器停止后自动删除容器acgpiano/sqli-labs:使用的镜像名称
3.6 进入运行中的容器
docker exec -it [容器ID] /bin/bash
使用此命令可以进入正在运行的容器内部进行操作。
4. 访问 SQLi-Labs
在浏览器中访问:
- 如果使用方式一:
http://localhost - 如果使用方式二:
http://localhost:8081
应该能看到 SQLi-Labs 的欢迎页面。
5. 容器管理
5.1 查看运行中的容器
docker ps
5.2 停止容器
docker stop sqli-labs
5.3 重新启动容器
如果系统重启后需要重新启动容器:
docker start sqli-labs
6. 注意事项
- 如果主机的 80 端口已被占用,请使用其他端口(如 8081)
- 使用
--rm参数后,容器停止后会被自动删除,但镜像仍保留 - 如需持久化数据,可以添加
-v参数挂载数据卷 - 确保系统防火墙或安全组规则允许访问映射的端口
7. 卸载清理
如需完全移除 SQLi-Labs 环境:
- 停止容器:
docker stop sqli-labs
- 删除镜像:
docker rmi acgpiano/sqli-labs
通过以上步骤,您已成功搭建了一个完整的 SQLi-Labs 靶机环境,可以开始进行 SQL 注入的学习和练习了。