在现代网络安全中,选择合适的 Web 应用防火墙至关重要。雷池(SafeLine)社区版免费切好用。为网站提供全面的保护,帮助网站抵御各种网络攻击。
compose.yml 文件是 Docker Compose 的核心文件,用于定义和管理多个 Docker 容器。通过这个文件,用户可以用简单的命令启动、停止和管理多个相关的容器。
举例其中mgt配置进行讲解
mgt 服务的Compose 配置解析
mgt
服务负责管理和协调系统的主要操作,以下是Compose 配置的详细解析。
配置详情
基本设置
container_name: safeline-mgt
- 将容器命名为
safeline-mgt
,替代 Docker 默认生成的随机名称,便于后续管理和识别。
- 将容器命名为
restart: always
- 设置容器的重启策略为
always
,容器在退出后无论原因都会自动重启,提升服务的高可用性。
- 设置容器的重启策略为
image: ${IMAGE_PREFIX}/safeline-mgt:${IMAGE_TAG:?image tag required}
- 指定容器使用的镜像地址,其中
IMAGE_PREFIX
和IMAGE_TAG
是环境变量。 IMAGE_PREFIX
和IMAGE_TAG
通常定义在.env
文件中,允许通过参数动态控制镜像的版本和仓库前缀。
- 指定容器使用的镜像地址,其中
卷挂载(volumes)
/etc/localtime:/etc/localtime:ro
- 将主机的
/etc/localtime
文件以只读方式挂载到容器中,保证容器内时区与主机一致。
- 将主机的
${SAFELINE_DIR}/resources/mgt:/app/data
- 持久化
mgt
服务的数据目录,保证数据在容器重启时不会丢失。
- 持久化
${SAFELINE_DIR}/logs/nginx:/app/log/nginx:z
- 映射容器中的
nginx
日志目录到主机,便于查看和分析日志。
- 映射容器中的
${SAFELINE_DIR}/resources/sock:/app/sock
- 挂载
sock
文件目录,支持服务间的通信。
- 挂载
/var/run:/app/run
- 映射容器运行所需的本地目录,提供所需的运行环境。
网络和端口(ports)
- ports: ${MGT_PORT:-9443}:1443
- 将主机端口映射到容器的
1443
端口,默认使用9443
,如果未在.env
文件中指定MGT_PORT
,则默认值为9443
。
- 将主机端口映射到容器的
健康检查(healthcheck)
- test: curl -k -f https://localhost:1443/api/open/health
- 配置健康检查测试命令,通过向服务的健康检查端点发送
curl
请求来确认服务状态。
- 配置健康检查测试命令,通过向服务的健康检查端点发送
环境变量(environment)
- MGT_PG=postgres://safeline-ce:${POSTGRES_PASSWORD}@safeline-pg/safeline-ce?sslmode=disable
- 设置
mgt
服务连接到Postgres
数据库的地址。 POSTGRES_PASSWORD
是一个环境变量,通常在.env
文件中定义。
- 设置
依赖(depends_on)
- depends_on:
- postgres
- fvm
- 表示
mgt
服务依赖postgres
和fvm
服务,这些服务需要先启动,以确保其运行正常。
日志管理(logging)
- logging:
- options:
- max-size: “100m”
- 单个日志文件的最大大小为 100MB,当日志文件达到此大小后自动生成新的日志文件。
- max-file: “5”
- 设置日志文件的数量上限为 5,超过后最旧的日志文件将被删除,有助于控制日志占用的磁盘空间。
网络配置(networks)
- networks:
- safeline-ce:
- ipv4_address: ${SUBNET_PREFIX}.4
- 指定
mgt
服务的静态 IP 地址,由${SUBNET_PREFIX}
配置子网前缀,.4
为服务的特定 IP 后缀。
- 指定