visibilityspots/keepalived Docker 镜像
visibilityspots查看 Docker Hub 原文页
用于运行Keepalived的Docker镜像,提供基于VRRP协议的高可用解决方案,支持服务器故障转移与负载均衡,确保服务持续可用。
4 次收藏下载次数: 0状态:社区镜像维护者:visibilityspots仓库类型:镜像最近更新:
Keepalived Docker镜像
镜像概述和主要用途
该Docker镜像用于运行http://keepalived.org/服务,提供VRRP(虚拟路由冗余协议)实现,确保网络服务的高可用性。
本镜像最初基于https://github.com/linkvt/docker-keepalived的工作,在保持核心功能的同时,为满足特定需求对实现方式进行了简化。
核心功能和特性
- 实现VRRP协议,提供网络服务的高可用保障
- 通过环境变量灵活配置Keepalived参数
- 支持单播模式和虚拟IP配置
- 轻量级设计,易于部署和维护
使用场景和适用范围
- 需要实现服务高可用的服务器集群环境
- 负载均衡器的冗余备份配置
- 关键网络服务的故障自动转移
- Docker容器化环境中的网络高可用方案
前置要求
- 主机需加载
ip_vs内核模块:modprobe ip_vs - 必须以主机网络模式运行:
--net=host - 需要特定的Linux capabilities权限
使用方法
基本运行命令
bashdocker run --cap-add=NET_ADMIN --cap-add=NET_BROADCAST --cap-add=NET_RAW --net=host --name keepalived --rm docker.xuanyuan.run/visibilityspots/keepalived:latest
Docker Compose配置示例
yamlversion: '3' services: keepalived: image: docker.xuanyuan.run/visibilityspots/keepalived:latest container_name: keepalived network_mode: host cap_add: - NET_ADMIN - NET_BROADCAST - NET_RAW environment: - KEEPALIVED_INTERFACE=eno1 - KEEPALIVED_STATE=MASTER - KEEPALIVED_ROUTER_ID=21 - KEEPALIVED_PRIORITY=200 - KEEPALIVED_UNICAST_PEERS=192.168.0.11 192.168.0.12 - KEEPALIVED_VIRTUAL_IPS=192.168.0.10/24 - KEEPALIVED_PASSWORD=secure_password restart: always
配置说明
环境变量参数
Dockerfile中设置了以下环境变量默认值,可根据需求覆盖:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
| KEEPALIVED_INTERFACE | eth0 | 网络接口 |
| KEEPALIVED_STATE | BACKUP | 节点状态(MASTER/BACKUP) |
| KEEPALIVED_ROUTER_ID | 21 | VRRP路由ID(0-255) |
| KEEPALIVED_PRIORITY | 150 | 节点优先级(数值越高优先级越高) |
| KEEPALIVED_UNICAST_PEERS | 192.168.0.11 - 192.168.0.12 | 单播对等节点IP列表 |
| KEEPALIVED_VIRTUAL_IPS | 192.168.0.10 | 虚拟IP地址 |
| KEEPALIVED_VIRTUAL_ROUTES | 192.168.0.0/24 dev eth0 scope link src 192.168.0.10 | 虚拟路由配置 |
| KEEPALIVED_PASSWORD | d0ck3r | VRRP认证密码 |
| KEEPALIVED_NOTIFY | notify "/usr/local/bin/keepalived-notify.sh" | 状态变化通知脚本 |
覆盖环境变量
通过--env参数可以覆盖默认环境变量,例如:
bashdocker run --cap-add=NET_ADMIN --cap-add=NET_BROADCAST --cap-add=NET_RAW --net=host \ --env KEEPALIVED_INTERFACE="eno1" \ --env KEEPALIVED_PASSWORD="password!" \ --env KEEPALIVED_PRIORITY="100" \ --env KEEPALIVED_STATE="MASTER" \ --env KEEPALIVED_VIRTUAL_IPS="10.0.0.100/24" \ --name keepalived --rm docker.xuanyuan.run/visibilityspots/keepalived:latest
构建镜像
本地构建
bashdocker build -t visibilityspots/keepalived:latest .
多平台构建
bash# 配置QEMU支持 docker run --rm --privileged docker.xuanyuan.run/multiarch/qemu-user-static --reset -p yes # 构建并推送多平台镜像 docker buildx build -t visibilityspots/keepalived:latest \ --platform linux/amd64,linux/arm/v6,linux/arm/v7 \ --push .
测试
可使用https://github.com/aelsabbahy/goss/tree/master/extras/dgoss工具运行goss测试:
bashdgoss run visibilityspots/keepalived:2.2.8
许可证
本项目采用https://github.com/visibilityspots/dockerfile-keepalived/blob/master/LICENSE。
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 keepalived 镜像标签
docker pull docker.xuanyuan.run/visibilityspots/keepalived:<标签>
DockerHub 原生拉取命令
docker pull visibilityspots/keepalived:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务