)
Docker零基础实战Ubuntu 22.04快速部署ARL灯塔全指南第一次接触Docker和ARL灯塔时我花了整整两天时间才把环境跑通。各种报错像打地鼠一样冒出来——不是权限问题就是端口冲突最崩溃的是连docker命令都找不到。如果你也经历过这种绝望这篇手把手教程就是为你准备的。不同于那些只展示成功路径的理想化指南这里会带你踩过每一个可能的坑直到登录页面亮起为止。1. 环境准备从零开始的Ubuntu配置刚装好的Ubuntu 22.04就像一张白纸我们需要先准备好画布。打开终端时建议先执行这三个黄金命令sudo apt update sudo apt upgrade -y sudo apt install curl git -y这组命令会更新软件源索引、升级现有软件包并安装后续必需的curl和git工具。遇到过不少新手直接跳过这步结果在后续环节莫名其妙报错。特别提醒所有涉及系统变更的操作都需要sudo权限忘记加sudo就像用游客账号改系统设置——必然碰壁。1.1 Docker引擎安装避坑指南官方文档的安装命令看起来很美好但在国内网络环境下可能会遇到这些典型问题下载速度慢如蜗牛推荐使用国内镜像源证书验证失败需要手动添加信任源用户组权限缺失导致每次都要sudo这里给出优化后的安装流程# 卸载旧版本如果有 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖工具 sudo apt install apt-transport-https ca-certificates gnupg lsb-release -y # 添加阿里云Docker镜像源 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io -y安装完成后最关键的步骤来了——将当前用户加入docker组sudo usermod -aG docker $USER newgrp docker这个操作能避免每次都要输入sudo的麻烦但需要重新登录才能生效。曾经有学员卡在这步三天直到发现需要完全退出SSH会话重新连接。验证安装是否成功时别只用简单的docker --version建议运行docker run --rm hello-world如果看到Hello from Docker!的欢迎信息说明引擎已正常运转。否则可能会遇到这些常见错误错误现象可能原因解决方案Cannot connect to Docker daemon服务未启动/权限不足sudo systemctl start docker并检查用户组TLS handshake timeout网络连接问题更换国内镜像源或检查代理设置permission denied用户组配置错误重新执行usermod并重启会话2. ARL灯塔部署实战2.1 项目获取与目录准备官方推荐通过git克隆仓库但在国内有时会遇到连接超时。这里提供两种备选方案方案AGit常规克隆git clone https://github.com/TophantTechnology/ARL.git cd ARL/docker方案B加速通道下载git clone https://ghproxy.com/https://github.com/TophantTechnology/ARL.git cd ARL/docker方案C直接下载ZIP包wget https://github.com/TophantTechnology/ARL/archive/refs/heads/master.zip unzip master.zip cd ARL-master/docker提示如果使用企业网络可能需要配置git代理git config --global http.proxy http://proxy.example.com:80802.2 Docker-compose编排启动进入docker目录后先创建数据卷防止信息丢失docker volume create arl_db启动服务时建议使用这个增强命令docker-compose pull docker-compose up -dpull会先拉取最新镜像-d参数让服务在后台运行。第一次执行可能会遇到这些情况镜像下载缓慢修改docker配置使用国内镜像加速器端口冲突5003端口被占用时需要修改docker-compose.yml内存不足ARL至少需要4GB内存虚拟机用户注意分配资源检查服务是否正常启动docker ps -a正常应该看到三个容器arl_web、arl_scheduler和arl_mongo。如果状态不是Up可以用docker logs 容器名查看具体错误。3. 常见问题诊断手册3.1 Docker命令未找到症状终端提示docker: command not found 根本原因Docker未正确安装或PATH配置异常分步排查确认安装是否完成which docker应该返回/usr/bin/docker检查PATH变量echo $PATH应包含/usr/bin尝试绝对路径/usr/bin/docker --version终极解决方案sudo apt install docker.io sudo systemctl enable --now docker3.2 端口5003冲突当看到Bind for 0.0.0.0:5003 failed: port is already allocated时找出占用进程sudo lsof -i :5003根据PID结束进程sudo kill -9 PID或者修改ARL端口# 编辑docker-compose.yml ports: - 新端口:50033.3 数据库连接失败容器日志出现MongoNetworkError: failed to connect to server时检查mongo服务状态docker exec arl_mongo mongosh --eval db.stats()重置数据卷docker volume rm arl_db docker volume create arl_db docker-compose up -d4. 系统配置与优化4.1 访问控制设置首次登录后默认admin/arlpass立即做这三件事修改管理员密码创建专属API密钥设置IP访问白名单安全配置建议定期备份/docker/data目录使用Nginx添加HTTPS加密启用Docker的日志轮转功能4.2 性能调优参数在docker-compose.yml中调整这些参数可提升效率environment: - WORKER_NUM4 # CPU核心数 - SCHEDULER_NUM2 - TASK_WORKERS10对于大规模扫描任务建议单独部署Redis作为消息队列services: redis: image: redis:alpine ports: - 6379:6379