HAProxy是目前速度最快、使用最广泛的开源负载均衡器和应用交付控制器。采用C语言编写,以高效利用CPU和内存著称。它支持四层(TCP)和七层(HTTP)代理,并具备HTTP消息检查、路由和修改等扩展功能。
该镜像内置Web监控界面(HAProxy Stats页面),可用于监控错误率、流量 volume 和延迟。通过修改单个配置文件即可启用各类功能,配置语法支持定义路由规则、速率限制、访问控制等。
获取帮助:
HAProxy邮件列表、HAProxy社区Slack 或 Libera.chat #haproxy频道
提交Issue:
https://github.com/haproxytech/haproxy-docker-alpine/issues
维护者:
https://github.com/haproxytech
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
linux/amd64, linux/arm64, linux/arm/v6, linux/arm/v7, linux/386
镜像更新:
https://github.com/haproxytech/haproxy-docker-alpine/commits/main%E3%80%81https://github.com/haproxytech/haproxy-docker-alpine
描述来源:
https://github.com/haproxytech/haproxy-docker-alpine/blob/main/README.md
该镜像默认包含简单示例配置,实际生产环境需根据官方文档和https://github.com/haproxy/haproxy/tree/master/examples%E8%BF%9B%E8%A1%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E3%80%82%E4%BB%A5%E4%B8%8B%E6%98%AF%E8%A6%86%E7%9B%96%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%AD%A5%E9%AA%A4%EF%BC%9A
创建Dockerfile
dockerfileFROM haproxytech/haproxy-alpine:3.0 COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
构建镜像
console$ docker build -t my-haproxy .
测试配置文件
console$ docker run -it --rm my-haproxy haproxy -c -f /usr/local/etc/haproxy/haproxy.cfg
运行容器
console$ docker run -d --name my-running-haproxy -p 8080:80 my-haproxy
说明:使用
-p参数将容器端口映射到主机,示例中主机8080端口映射到容器80端口
console$ docker run -d --name my-running-haproxy -v /path/to/etc/haproxy:/usr/local/etc/haproxy:ro haproxytech/haproxy-alpine:3.0
注意:主机目录
/path/to/etc/haproxy需包含haproxy.cfg及其他必要配置文件,:ro表示只读挂载
通过发送SIGUSR2信号实现配置热加载,无需重启容器:
console$ docker kill -s USR2 my-running-haproxy
2.0+版本镜像默认包含Data Plane API(管理接口),启用步骤如下:
1. 配置文件修改
在haproxy.cfg中添加以下内容:
haproxy# 定义API用户列表 userlist haproxy-dataplaneapi user admin insecure-password mypassword # 用户名: admin, 密码: mypassword # 定义API进程 program api command /usr/bin/dataplaneapi \ --host 0.0.0.0 \ # 监听地址 --port 5555 \ # 监听端口 --haproxy-bin /usr/sbin/haproxy \ # haproxy可执行文件路径 --config-file /usr/local/etc/haproxy/haproxy.cfg \ # 配置文件路径 --reload-cmd "kill -SIGUSR2 1" \ # 重载命令 --restart-cmd "kill -SIGUSR2 1" \ # 重启命令 --reload-delay 5 \ # 重载延迟(秒) --userlist haproxy-dataplaneapi # 关联用户列表 no option start-on-reload # 避免重载时重启API进程
2. 启动容器
console$ docker run -d --name my-running-haproxy --expose 5555 -v /path/to/etc/haproxy:/usr/local/etc/haproxy:rw haproxytech/haproxy-alpine
说明:
--expose 5555暴露API端口,:rw表示读写挂载(API需修改配置文件)
yamlversion: '3' services: haproxy: image: haproxytech/haproxy-alpine:3.2 container_name: haproxy restart: always ports: - "80:80" - "443:443" volumes: - ./haproxy:/usr/local/etc/haproxy:ro networks: - haproxy-network healthcheck: test: ["CMD", "haproxy", "-c", "-f", "/usr/local/etc/haproxy/haproxy.cfg"] interval: 30s timeout: 10s retries: 3 networks: haproxy-network: driver: bridge
镜像中软件的许可信息参见https://raw.githubusercontent.com/haproxy/haproxy/master/LICENSE%E3%80%82
与所有Docker镜像一样,本镜像可能包含基础发行版的其他软件(如Bash等),这些软件可能具有独立的许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务