菜单

Docker 部署

相关源文件

本文档介绍了如何使用 Docker 容器部署和使用 Sherlock。Docker 提供了一个隔离、一致的环境来运行 Sherlock,无需担心依赖项或系统兼容性问题。有关传统的软件包安装方法,请参阅软件包安装,有关详细的命令行选项,请参阅命令行界面

Docker 部署概述

Sherlock 提供了一个官方 Docker 镜像,允许您在不直接安装到系统的情况下运行该工具。Docker 部署将 Sherlock 应用程序及其所有依赖项打包到容器化环境中。

来源:Dockerfile1-32

架构

Sherlock Docker 镜像采用多阶段构建过程构建。它从 PyPI 安装官方 Sherlock Python 包并设置执行环境。

来源:Dockerfile7-31 .dockerignore1-8

先决条件

要使用 Sherlock Docker 镜像,您需要:

  1. 在您的系统上安装 Docker
  2. 互联网连接,用于拉取镜像和发出请求
  3. 对 Docker 命令的基本熟悉

基本用法

拉取官方镜像

您也可以指定版本标签而不是 latest 来使用特定版本的 Sherlock。

为所有支持的站点搜索用户名

搜索多个用户名

将结果保存到文件

来源:Dockerfile31-32

命令行选项

所有常规 Sherlock 命令行选项都可以传递给 Docker 容器。例如:

有关可用选项的完整列表,请参阅命令行界面

Docker 特有功能

执行流程

下图说明了在 Docker 容器中运行 Sherlock 时的执行流程

来源:Dockerfile31-32

卷挂载

要持久化容器运行之间的数据,您可以挂载卷。

目的Docker 命令
保存文本结果-v "$(pwd)/output:/sherlock/output"
保存 CSV 结果-v "$(pwd)/output:/sherlock/output" --csv /sherlock/output/results.csv
自定义站点配置-v "$(pwd)/custom_data.json:/sherlock/custom_data.json"

环境变量

Docker 镜像将 SHERLOCK_ENV=docker 环境变量设置为指示它在 Docker 环境中运行。

来源:Dockerfile19

高级用法

与 Docker Compose 一起使用

对于重复使用或更复杂的设置,您可以使用 Docker Compose。创建一个 docker-compose.yml 文件。

然后运行

速率限制注意事项

从 Docker 容器运行大型搜索时,您可能会遇到社交媒体平台的速率限制。您可以使用 --timeout--rate-limit 选项来管理此问题。

构建自定义镜像

如果您需要自定义 Sherlock Docker 镜像,可以构建自己的镜像。

  1. 克隆 Sherlock 仓库
  2. 根据需要修改 Dockerfile
  3. 构建您的自定义镜像

Dockerfile 结构

官方 Dockerfile 使用

  • Python 3.12 slim Bullseye 作为基础镜像
  • 用于提高效率的多阶段构建过程
  • 从 PyPI 安装,而不是从源代码安装
  • 用于元数据和版本控制的标签

来源:Dockerfile7-28

故障排除

常见问题

问题可能解决方案
挂载卷的权限问题使用 --user $(id -u):$(id -g) 运行
网络连接检查您的防火墙和代理设置
限流使用 --timeout--rate-limit 选项
容器退出且无结果添加 --verbose 标志以获取更多信息

检查 Docker 镜像信息

要验证您的 Sherlock Docker 镜像的版本和详细信息

来源:Dockerfile21-25

安全考量

在使用 Docker 运行 Sherlock 时

  1. 容器默认以 root 用户运行 - 考虑使用 --user 标志来降低权限
  2. 挂载的卷可能暴露数据 - 请注意文件权限
  3. 需要互联网访问 - 容器需要建立出站连接

版本控制

Sherlock Docker 镜像遵循与 Sherlock 软件包相同的版本控制。镜像标签与软件包版本匹配,latest 指向最新的发布版本。

来源:Dockerfile1-6 Dockerfile15-17