Arkime Docker容器化部署:快速搭建开发测试环境
Arkime Docker容器化部署:快速搭建开发测试环境
【免费下载链接】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
常见问题解决
容器启动失败
- 检查依赖服务状态:确保Elasticsearch容器正常启动
docker compose logs elasticsearch
- 资源不足问题:增加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插件开发:contrib/
- 配置高级功能:release/config.ini.sample
- 了解Arkime架构设计:capture/DESIGN.md
现在你已经拥有了一个灵活可控的Arkime测试环境,可以开始探索网络流量分析的更多功能了。如果本文对你有帮助,请点赞收藏,关注后续关于Arkime高级使用技巧的文章!
【免费下载链接】arkime 项目地址: https://gitcode.com/gh_mirrors/ark/arkime
更多推荐


所有评论(0)