在线或离线安装
# 使用最新稳定版 1.5.3
docker pull clamav/clamav:1.5.3
# 或使用 LTS 版 1.4.5(更稳定、支持周期更长)
docker pull clamav/clamav:1.4.5
# 1. 拉取镜像并保存为 tar 包
docker pull clamav/clamav:latest
docker save -o clamav-docker.tar clamav/clamav:latest
# 2. 下载病毒库
mkdir -p /data/vdb/clamav-offline/db
cd /data/vdb/clamav-offline/db
wget https://database.clamav.net/main.cvd
wget https://database.clamav.net/daily.cvd
wget https://database.clamav.net/bytecode.cvd基础部署命令
# 1. 离线模式(使用本地病毒库)- 你当前的使用方式
docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \ #可能要去除只读
clamav/clamav:1.4.5 \
clamscan -r /scan
# 2. 在线模式(自动更新病毒库)- 需要联网
docker run --rm \
-v /data:/scan:ro \
clamav/clamav:1.4.5 \
clamscan -r /scan🔍 常用扫描命令
命令 说明
clamscan -r /scan 递归扫描目录(最常用)
clamscan -r /scan --quiet 静默模式,只输出感染文件
clamscan -r /scan --verbose 显示详细扫描信息
clamscan -r /scan --remove 扫描并自动删除感染文件(⚠️谨慎)
clamscan -r /scan --move=/quarantine 将感染文件移动到隔离目录
clamscan -r /scan --exclude-dir=/scan/docker 跳过指定目录
clamscan -r /scan --exclude=.*\.log$ 跳过匹配正则的文件
clamscan -r /scan --max-filesize=50M 限制单文件扫描大小
clamscan -r /scan --max-scansize=200M 限制扫描总数据量
clamscan -r /scan -l /scan/scan.log 将结果保存到日志文件⚙️ 实用场景组合
# 1. 后台扫描 + 日志记录(推荐)
nohup docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \
-v /var/log:/log \
clamav/clamav:1.4.5 \
clamscan -r /scan -l /log/clamav_scan_$(date +%Y%m%d).log \
> /dev/null 2>&1 &
# 2. 扫描并排除Docker目录(加快速度)
docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \
clamav/clamav:1.4.5 \
clamscan -r /scan --exclude-dir=/scan/docker --exclude-dir=/scan/containerd
# 3. 扫描但不扫描压缩包内部
docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \
clamav/clamav:1.4.5 \
clamscan -r /scan --no-archive
# 4. 多线程扫描(加快速度)
docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \
clamav/clamav:1.4.5 \
clamscan -r /scan --threads=4📊 查看扫描结果
# 1. 查看当前扫描进度(实时)
tail -f /var/log/clamav_scan_*.log
# 2. 统计已扫描文件数
grep -c "OK\|FOUND" /var/log/clamav_scan_*.log
# 3. 查看感染文件
grep "FOUND" /var/log/clamav_scan_*.log🛠️ 常用管理命令
# 1. 检查病毒库版本
docker run --rm clamav/clamav:1.4.5 clamscan --version
# 2. 检查病毒库信息
docker run --rm clamav/clamav:1.4.5 freshclam --version
# 3. 更新病毒库(在线模式)
docker run --rm clamav/clamav:1.4.5 freshclam其他有用的镜像
# 1. 使用Alpine基础镜像(体积更小)
docker run --rm clamav/clamav:1.4.5-alpine clamscan -r /scan
# 2. 长期运行的守护进程模式(用于实时防护)
docker run -d \
--name clamav \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-p 3310:3310 \
clamav/clamav:1.4.5💡 实用技巧
解决权限问题(你之前遇到的chown错误):
# 方案A:不加:ro只读限制
-v /data/vdb/clamav-offline/db:/var/lib/clamav
# 方案B:设置环境变量
-e CLAMAV_NO_CHOWN=true
扫描性能优化:
排除不必要的大目录(如/scan/docker)
使用--threads=4多线程
限制单文件大小--max-filesize=100M自动化扫描脚本:
#!/bin/bash
# scan.sh - 每周日半夜2点执行
DATE=$(date +%Y%m%d_%H%M)
docker run --rm \
-v /data/vdb/clamav-offline/db:/var/lib/clamav \
-v /data:/scan:ro \
-v /var/log:/log \
clamav/clamav:1.4.5 \
clamscan -r /scan -l /log/clamav_${DATE}.log
评论 (0)