菜单

Docker 部署

相关源文件

目的与范围

本文档提供了使用 Docker 容器部署 hackingtool 框架的详细说明。Docker 部署提供了一个一致、隔离的环境,可以在不修改主机系统的情况下运行 hackingtool。有关标准非 Docker 安装说明,请参阅安装指南

Docker 部署概述

Docker 允许您在基于 Kali Linux 的隔离容器中运行 hackingtool,提供一个干净的环境,并预装了所有依赖项。该存储库包含用于构建自定义映像的 Dockerfile 和用于简化部署的 docker-compose 配置。

来源: README.md243-276 Dockerfile1-12 docker-compose.yml1-11

先决条件

在通过 Docker 部署 hackingtool 之前,请确保您已

  1. 在主机系统上安装了 Docker
  2. 安装了 Docker Compose(用于使用 docker-compose 方法)
  3. 拥有足够的系统资源(CPU、内存、存储)
  4. 具备 Docker 命令的基本了解

部署方法

方法 1:使用 Dockerfile 构建和运行

该存储库包含一个 Dockerfile,用于定义 hackingtool 映像的构建方式。此 Dockerfile

  • 使用最新的 Kali Linux 映像作为基础
  • 安装必要的依赖项
  • 设置工作环境
  • 配置应用程序

构建 Docker 镜像

docker build -t hackingtool .

注意:README.md 中的构建命令存在拼写错误(docker buitl)。正确的命令是 docker build

构建后运行容器

docker run -it hackingtool

来源: README.md245-250 Dockerfile1-12

方法 2:使用 Docker Compose

该存储库提供了 docker-compose.yml 文件,以便更轻松地进行部署。此方法简化了使用正确设置运行容器的过程。

使用 Docker Compose 进行部署

docker-compose up -d

此命令将

  • 拉取预先构建的 vgpastor/hackingtool 映像(或使用您本地构建的映像)
  • 创建并启动一个名为“hackingtool”的容器
  • 将当前目录作为卷挂载到容器中
  • 以分离模式运行容器(-d

来源: README.md252-256 docker-compose.yml1-11

Docker 配置分析

Dockerfile 详解

Dockerfile 定义了 hackingtool 映像的构建方式

关键组件

  1. 基础映像:使用官方的 Kali Linux rolling release
  2. 系统依赖:安装 git、Python3-pip、figlet、sudo、boxes、php、curl、xdotool 和 wget
  3. Python 依赖:从 requirements.txt 安装所需的 Python 包
  4. 端口配置:公开所有端口(1-65535)以供工具操作
  5. 入口点:在容器启动时运行 hackingtool.py

来源: Dockerfile1-12

Docker Compose 配置

docker-compose.yml 文件定义了服务配置

配置目的
imagevgpastor/hackingtool要使用的预构建映像
container_namehackingtool分配给容器的名称
stdin_opentrue保持 STDIN 打开以进行交互式使用
ttytrue分配一个伪 TTY 以进行终端交互
volumes.:/root/hackingtool将本地目录挂载到容器
ports22:22将容器的 SSH 端口映射到主机

来源: docker-compose.yml1-11

与容器交互

容器运行后,您可以使用以下命令与之交互

docker exec -it hackingtool bash

这将打开容器内的 bash shell,使您可以使用 hackingtool 界面并执行命令。

在容器中与 hackingtool 交互时,系统会提示您选择操作系统类型

Select Best Option:
    [1] Kali Linux / Parrot-Os (apt)
    [2] Arch Linux (pacman)
    [0] Exit

选择相应的选项(通常是 Kali Linux 的选项 1)以继续。

来源: README.md258-272

数据持久化和文件共享

Docker 配置包含卷挂载,以支持

  1. 跨容器重启的数据持久化
  2. 主机与容器之间的文件共享

在 docker-compose.yml 中,当前目录(.)被挂载到容器中的 /root/hackingtool。这意味着

  • 在容器中对该目录下的文件所做的更改会反映在主机上
  • 添加到主机上此目录的文件在容器中可访问
  • 即使容器被删除并重新创建,数据也会持久化

来源: docker-compose.yml7-9

网络配置

Docker 容器公开了端口,以使网络工具能够正常运行

  1. Dockerfile 公开了所有端口(1-65535),以允许工具通过任何需要的端口进行通信
  2. docker-compose.yml 具体将容器的 22 端口(SSH)映射到主机

在使用 docker-compose 时,要公开其他端口,请修改 docker-compose.yml 中的 ports 部分

来源: Dockerfile11 docker-compose.yml10-11

最佳实践和安全注意事项

在使用 Docker 部署 hackingtool 时,请考虑以下最佳实践

  1. 隔离网络:考虑为安全测试使用隔离的 Docker 网络
  2. 卷权限:注意主机和容器之间的文件权限问题
  3. 资源限制:如果需要,为容器设置资源限制
  4. 定期更新:定期重新构建映像以获取最新的 Kali Linux 更新
  5. 合法和道德使用:仅将工具用于合法的安全测试,如存储库中的警告所述

来源: README.md280-281

故障排除

使用 Docker 部署时的常见问题

  1. 端口冲突:如果其他服务占用了相同的端口,请修改端口映射
  2. 权限问题:卷挂载可能导致权限问题;请验证用户权限
  3. 资源限制:某些工具可能需要比 Docker 默认分配的更多的资源
  4. 网络连接:如果网络设置受限,某些工具可能无法正常工作

要解决大多数问题,请检查 Docker 日志

docker logs hackingtool

来源: README.md243-276