代码审计工具部署使用方法:零基础Docker安装

部署前先搞清楚两件事

代码审计工具可以自动扫描项目源码中的安全漏洞、坏味道和规范问题。
对于零基础用户,推荐用 SonarQube(社区版免费)配合 Docker 部署,不需要手动配置 Java 和数据库,一条命令就能拉起服务。

准备条件

  • 一台 Linux 服务器(CentOS 7+ 或 Ubuntu 18.04+),建议 2 核 4G 以上
  • 已安装 Docker 和 Docker Compose(如果没有,先跑下面两行安装)
# 安装 Docker(以CentOS为例)
yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum install -y docker-ce docker-ce-cli containerd.io && systemctl start docker && systemctl enable docker
# 安装 Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
  • 开放防火墙 9000 端口(SonarQube 默认端口)
firewall-cmd --add-port=9000/tcp --permanent && firewall-cmd --reload

用 docker-compose.yml 一键拉起 SonarQube

在服务器上新建一个目录,例如 sonar-qube,然后创建 docker-compose.yml 文件:

version: "3.8"
services:
  sonarqube:
    image: sonarqube:community
    container_name: sonarqube
    ports:
      - "9000:9000"
    environment:
      - SONAR_JDBC_URL=jdbc:postgresql://db:5432/sonar
      - SONAR_JDBC_USERNAME=sonar
      - SONAR_JDBC_PASSWORD=sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    depends_on:
      - db
  db:
    image: postgres:13
    container_name: sonar-db
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
      - POSTGRES_DB=sonar
    volumes:
      - postgresql_data:/var/lib/postgresql/data
volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql_data:

解释几个关键点

  • image: sonarqube:community 是社区版,功能完全够用
  • 数据库用 PostgreSQL,自动创建用户和数据库 sonar
  • 持久化数据卷确保重启不丢配置和扫描结果

进入目录并启动:

cd sonar-qube
docker-compose up -d

启动需要 30~60 秒,可以用 docker-compose logs -f 实时查看日志,看到 SonarQube is operational 就代表成功。

避坑指南:新手最容易卡住的地方

问题1:启动后访问 IP:9000 一直显示 502

  • 原因:内存不足。SonarQube 启动需要至少 2GB 可用内存。用 free -h 查看,如果不够请增大服务器配置或关闭其他应用。
  • 解决:如果你服务器内存只有 2G,可以设置 JVM 参数限制内存,但建议升级配置。

问题2:Elasticsearch 启动失败

  • SonarQube 内部依赖 Elasticsearch,要求系统参数 vm.max_map_count 至少为 262144。执行以下命令临时生效:
sysctl -w vm.max_map_count=262144

永久生效需写入 /etc/sysctl.conf

问题3:用 root 账户执行 docker 命令时报权限错误

  • 确认当前用户属于 docker 组:usermod -aG docker $USER 然后重新登录。

验证服务可用并做一次扫描测试

浏览器访问 http://服务器IP:9000,首次会看到初始化页面,设置管理员账户(默认 admin/admin,务必改密码)。

接着创建一个测试项目:

  1. 登录后点击“Create new project”
  2. 输入项目名称和项目 key,选择“Local project”
  3. 按照屏幕提示生成一个 token(复制保存)
  4. 在需要审计的代码项目根目录,用 SonarQube Scanner 运行扫描

示例(假设代码是 Java 项目,用 Maven):

# 安装 SonarQube Scanner(也可以直接使用 Docker 镜像)
docker run --rm \
    -v "$(pwd):/usr/src" \
    sonarsource/sonar-scanner-cli \
    -Dsonar.projectKey=my-test \
    -Dsonar.sources=. \
    -Dsonar.host.url=http://你的服务器IP:9000 \
    -Dsonar.login=你的token

扫描完成后,刷新 SonarQube 页面就能看到代码质量报告、漏洞数量、代码异味等审计结果。

高频问题与日常维护提醒

  • Q:扫描后报告里没有显示安全漏洞?

A:SonarQube 社区版只提供基础的安全热点检测,高级安全功能需要 Developer 版或更高。
你可以启用“Security Hotspots”规则来看到更多告警。

  • Q:代码审计工具部署使用方法适用于其他语言吗?

A:完全适用。
SonarQube 支持 Java、Python、JS、Go 等 30+ 种语言,只要在扫描时指定对应参数即可。

  • Q:服务器重启后 SonarQube 自动启动吗?

A:
如果 Docker 服务设置了开机自启(systemctl enable docker),
并且容器策略为 unless-stopped(我们没设置,
可以改一下),
建议在 docker-compose.yml 里加 restart:
always

避坑提醒:定期检查磁盘空间,SonarQube 数据和日志会逐步增长。
docker system df 查看整体占用,必要时清理无用的镜像和扫描数据。

如果你正在学习代码审计工具部署使用方法,建议先按本文步骤在测试环境走一遍,熟悉后再接入生产项目。
遇到报错优先回看“避坑指南”部分,大部分都可以解决。

分享到:
上一篇
Web安全实战攻防演练教程:零基础搭建测试环境与常见攻击手法
下一篇
APP安全测试服务器环境搭建:零基础搭建APP安全测试服务器
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意