Arkime Docker容器化部署:快速搭建开发测试环境

【免费下载链接】arkime 【免费下载链接】arkime 项目地址: https://gitcode.com/gh_mirrors/ark/arkime

你还在为网络流量分析工具的复杂部署流程烦恼吗?本文将带你通过Docker容器化技术,在15分钟内完成Arkime开发测试环境的搭建,无需繁琐的系统依赖配置,让你专注于功能验证和协议分析。读完本文后,你将掌握容器化部署的核心步骤、环境配置技巧以及常见问题排查方法。

为什么选择Docker容器化部署

传统部署Arkime需要手动配置OpenSearch/Elasticsearch、Node.js环境和系统依赖,过程涉及多个组件版本兼容性问题。容器化部署具有以下优势:

  • 环境一致性:消除"在我电脑上能运行"的问题,开发测试环境与生产环境保持一致
  • 快速启停:3条命令即可完成从部署到运行的全过程
  • 资源隔离:不会污染主机系统配置,测试完成后可完全清理
  • 版本控制:轻松切换不同Arkime版本进行功能对比测试

前期准备工作

系统要求

  • Docker Engine 20.10+
  • Docker Compose v2+
  • 至少2GB可用内存(推荐4GB以上)
  • 网络连接(用于拉取容器镜像和依赖)

基础环境检查

# 验证Docker是否安装成功
docker --version
docker compose version

# 确保Docker服务正在运行
systemctl status docker || service docker status

获取项目代码

git clone https://gitcode.com/gh_mirrors/ark/arkime
cd arkime

容器化部署步骤

1. 配置Docker构建文件

Arkime项目的Docker构建配置分散在多个文件中,需要确保这些文件正确配置:

# 查看Docker相关构建配置
cat CONTRIBUTING.md | grep -A 2 "makeDockerBuild.sh"

根据CONTRIBUTING.md文档说明,Docker构建主要涉及以下文件:

  • makeDockerBuild.sh:构建脚本
  • Dockerfile:容器镜像定义文件

2. 构建Docker镜像

# 执行Docker构建脚本(实际项目中可能需要调整参数)
./build/makeDockerBuild.sh

注意:如果项目中没有现成的Dockerfile和构建脚本,可参考官方贡献指南CONTRIBUTING.md第158-159行的说明自行创建。

3. 启动容器集群

创建基础的docker-compose.yml文件(项目中可能需要自行创建):

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9200/_cluster/health"]
      interval: 10s
      timeout: 10s
      retries: 5

  arkime:
    build: .
    depends_on:
      elasticsearch:
        condition: service_healthy
    ports:
      - "8080:8080"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - ARKIME_ADMIN_PASSWORD=admin
    volumes:
      - ./data:/data

启动容器:

docker compose up -d

4. 初始化管理员账户

# 进入Arkime容器
docker compose exec arkime bash

# 创建管理员用户
/opt/arkime/bin/arkime_add_user.sh admin "Admin User" admin --admin

5. 验证部署结果

# 检查容器运行状态
docker compose ps

# 查看服务日志
docker compose logs -f arkime

打开浏览器访问 http://localhost:8080,使用用户名admin和密码admin登录系统。成功登录后会看到Arkime的主界面,表明容器化部署成功。

开发测试环境使用技巧

数据导入测试

# 从PCAP文件导入测试数据
docker compose exec arkime \
  /opt/arkime/bin/arkime_capture \
  --pcap tests/pcap/http-100-continue.pcap \
  --import

版本切换方法

# 切换到指定版本
git checkout v3.4.0

# 重新构建并启动
docker compose down
docker compose up -d --build

容器内调试

# 进入容器内部
docker compose exec arkime bash

# 查看Arkime配置
cat /opt/arkime/etc/config.ini

# 检查Elasticsearch连接
curl -X GET http://elasticsearch:9200/_cluster/health

常见问题解决

容器启动失败

  1. 检查依赖服务状态:确保Elasticsearch容器正常启动
docker compose logs elasticsearch
  1. 资源不足问题:增加Docker可用内存,编辑/etc/docker/daemon.json
{
  "default-address-pools": [
    {"base":"172.80.0.0/16","size":24}
  ],
  "resources": {
    "limits": {
      "memory": "4G"
    }
  }
}

数据持久化配置

修改docker-compose.yml,添加持久化卷:

volumes:
  esdata:
  arkimedata:

services:
  elasticsearch:
    volumes:
      - esdata:/usr/share/elasticsearch/data
  arkime:
    volumes:
      - arkimedata:/data

网络访问问题

如果宿主机无法访问容器服务,检查防火墙规则:

# 开放必要端口
sudo ufw allow 8080/tcp
sudo ufw allow 9200/tcp

环境清理与卸载

测试完成后,可以完全清理环境:

# 停止并删除容器、网络
docker compose down

# 如需删除镜像和数据卷(谨慎操作)
docker compose down --rmi all -v

# 删除项目代码目录
cd .. && rm -rf arkime

总结与下一步

通过Docker容器化技术,我们快速搭建了Arkime的开发测试环境,避开了复杂的系统依赖配置。这种方式特别适合功能验证、协议分析和版本兼容性测试等场景。

推荐后续学习

现在你已经拥有了一个灵活可控的Arkime测试环境,可以开始探索网络流量分析的更多功能了。如果本文对你有帮助,请点赞收藏,关注后续关于Arkime高级使用技巧的文章!

Arkime Logo

【免费下载链接】arkime 【免费下载链接】arkime 项目地址: https://gitcode.com/gh_mirrors/ark/arkime

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐