keepalived

visibilityspots/keepalived Docker 镜像

用于运行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权限

使用方法

基本运行命令

bash
docker 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配置示例

yaml
version: '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_INTERFACEeth0网络接口
KEEPALIVED_STATEBACKUP节点状态(MASTER/BACKUP)
KEEPALIVED_ROUTER_ID21VRRP路由ID(0-255)
KEEPALIVED_PRIORITY150节点优先级(数值越高优先级越高)
KEEPALIVED_UNICAST_PEERS192.168.0.11 - 192.168.0.12单播对等节点IP列表
KEEPALIVED_VIRTUAL_IPS192.168.0.10虚拟IP地址
KEEPALIVED_VIRTUAL_ROUTES192.168.0.0/24 dev eth0 scope link src 192.168.0.10虚拟路由配置
KEEPALIVED_PASSWORDd0ck3rVRRP认证密码
KEEPALIVED_NOTIFYnotify "/usr/local/bin/keepalived-notify.sh"状态变化通知脚本

覆盖环境变量

通过--env参数可以覆盖默认环境变量,例如:

bash
docker 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

构建镜像

本地构建

bash
docker 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测试:

bash
dgoss 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:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告