
docker部署clamav 1.4.2
准备阶段
按照 clamav 官方描述,它的 docker 镜像有两种,一种是 clamav/clamav:<version>
,另一种是 clamav/clamav:<version>_base
,这两种镜像的主要区别如下
clamav/clamav:<version>
:预先将病毒库一起打包进容器内的发行版,容器启动后不需要下载太多数据clamav/clamav:<version>_base
:没有预先将病毒库打包进容器,用户可以自己将准备好的病毒库挂载进容器,或者让容器启动后将病毒库下载
这里我们使用预先打包了病毒库的镜像 clamav/clamav:<version>
使用科学方式,拉取镜像
docker pull clamav/clamav:1.4.2
简单的启动命令如下
docker run -itd -p 3310:3310 --name clamav clamav/clamav:1.4.2
上面命令启动后,它会使用镜像里面的配置文件以及病毒库来启动
在正式部署 clamav 前,我们还有两个步骤要做
1、准备病毒库
当然,如果你自己早就已经准备好了病毒库,那就不用再折腾这一步了
正常情况下我们希望能够在后续使用我们自己准备的病毒库来给它启动,但目前我们并没有准备好自己的病毒库,所以需要将镜像里面的病毒库复制到宿主机,然后再挂载进容器中
先使用上面那条命令启动容器,然后再将容器中的 /var/lib/clamav 这个目录里面的文件复制到宿主机
mkdir ./data
docker cp clamav:/var/lib/clamav/* ./data
这样我们就得到了一份病毒库
2、准备 clamav 配置文件
clamav 容器中的配置文件存放在 /etc/clamav,我们一样先将这些配置文件复制到宿主机
mkdir config
docker cp clamav:/etc/clamav/* ./config
修改部分配置文件
从 clamav 复制出来的配置有下面文件
# 邮件告警配置,.sample 后缀的是示例
clamav-milter.conf
clamav-milter.conf.sample
# clamav服务配置,.sample 后缀的是示例
clamd.conf
clamd.conf.sample
# 病毒库更新配置,.sample 后缀的是示例
freshclam.conf
freshclam.conf.sample
打开 clamd.conf ,找到下面这些配置,修改成下面这些值
# 打印日志时也打印时间
LogTime yes
# 绑定ip
TCPAddr 0.0.0.0
# 流式提交文件时,数据量超过这个设置,则直接断开连接,默认100m,这个值的设置范围要符合MTA(Microsoft Teams)对单个附件的大小限制
StreamMaxLength 1024M
# 最大线程数,默认是10,可以根据自己服务器资源配置
MaxThreads 5
# 设置每个文件扫描最大数据量,0表示不限制,默认400M,根据自己的业务设置
MaxScanSize 1024M
# 大于这个大小的文件,不会被扫描,默认是100m,根据自己业务设置
MaxFileSize 1024M
打开 freshclam.conf,找到下面这些配置,修改成下面这些值
# 记录每条消息的时间
LogTime yes
# 启用详细日志记录
LogVerbose yes
# 使用系统日志程序
LogSyslog yes
docker-compose 启动
version: '3'
services:
clamav:
image: clamav/clamav:1.4.2
container_name: clamav
ports:
- "3310:3310"
volumes:
# 病毒库存放路径
- ./data:/var/lib/clamav
# 配置文件存放路径
- ./config:/etc/clamav
# 日志存放路径
- ./logs:/var/log/clamav
如果需要 docker 容器不可访问外网,可以改成下面配置
version: '3'
services:
clamav:
image: clamav/clamav:1.4.2
container_name: clamav
networks:
- internal # 仅加入内部网络
ports:
- "3310:3310"
volumes:
- ./data:/var/lib/clamav
- ./config:/etc/clamav
- ./logs:/var/log/clamav
networks:
internal:
internal: true # 禁用外部网络访问
启动
docker-compose up -d
查看日志输出
docker-compose logs -f
本文是原创文章,采用 CC 4.0 BY-SA 协议,完整转载请注明来自 KK元空间
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果