
arm64v8/haproxy这是 haproxy官方镜像 的 arm64v8 架构构建的"按架构"仓库——更多信息,请参见官方镜像文档中的 "除amd64之外的架构?" 和官方镜像FAQ中的 "Git中的镜像源已更改,现在该怎么办?"。
维护者:
Docker社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接3.3-dev9, 3.3-dev, 3.3-dev9-trixie, 3.3-dev-trixie
3.3-dev9-alpine, 3.3-dev-alpine, 3.3-dev9-alpine3.22, 3.3-dev-alpine3.22
3.2.6, 3.2, latest, lts, 3.2.6-trixie, 3.2-trixie, trixie, lts-trixie
3.2.6-alpine, 3.2-alpine, alpine, lts-alpine, 3.2.6-alpine3.22, 3.2-alpine3.22, alpine3.22, lts-alpine3.22
3.1.9, 3.1, 3.1.9-trixie, 3.1-trixie
3.1.9-alpine, 3.1-alpine, 3.1.9-alpine3.22, 3.1-alpine3.22
3.0.12, 3.0, 3.0.12-trixie, 3.0-trixie
3.0.12-alpine, 3.0-alpine, 3.0.12-alpine3.22, 3.0-alpine3.22
2.8.16, 2.8, 2.8.16-trixie, 2.8-trixie
2.8.16-alpine, 2.8-alpine, 2.8.16-alpine3.22, 2.8-alpine3.22
2.6.23, 2.6, 2.6.23-trixie, 2.6-trixie
2.6.23-alpine, 2.6-alpine, 2.6.23-alpine3.22, 2.6-alpine3.22
2.4.30, 2.4, 2.4.30-trixie, 2.4-trixie
2.4.30-alpine, 2.4-alpine, 2.4.30-alpine3.22, 2.4-alpine3.22
问题提交地址:
[***]
支持的架构:(更多信息)
amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
已发布镜像工件详情:
repo-info仓库的 repos/haproxy/ 目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的 library/haproxy 标签
official-images仓库的 library/haproxy 文件 (历史记录)
本描述的来源:
docs仓库的 haproxy/ 目录 (历史记录)
HAProxy是一款免费、开源的高可用解决方案,通过将请求分布到多台服务器,为基于TCP和HTTP的应用提供负载均衡和代理功能。它使用C语言编写,以快速高效(在处理器和内存使用方面)而闻名。
***.org/wiki/HAProxy
!logo
由于HAProxy的用户配置需求各不相同,因此此镜像不包含默认配置。
有关配置HAProxy以满足您需求的详细信息,请参考上游优秀且全面的文档。
也值得查看上游的examples/目录。
DockerfiledockerfileFROM arm64v8/haproxy:2.3 COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
console$ docker build -t my-haproxy .
console$ docker run -it --rm --name haproxy-syntax-check my-haproxy haproxy -c -f /usr/local/etc/haproxy/haproxy.cfg
console$ docker run -d --name my-running-haproxy --sysctl net.ipv4.ip_unprivileged_port_start=0 my-haproxy
您需要内核版本至少为4.11或更新版本才能使用 --sysctl net.ipv4.ip_unprivileged_port_start=0。您可能需要通过指定 -p 选项将HAProxy监听的端口发布到主机,例如 -p 8080:80 将容器中的80端口发布到主机的8080端口。确保您使用的端口是空闲的。
注意:2.4+版本的容器默认以 USER haproxy 身份运行(因此需要上述 --sysctl net.ipv4.ip_unprivileged_port_start=0),但旧版本为了兼容性仍默认以 root 身份运行;如果您希望在旧版本中以非root身份运行,请使用 --user haproxy(或其他UID)。
console$ docker run -d --name my-running-haproxy -v /path/to/etc/haproxy:/usr/local/etc/haproxy:ro --sysctl net.ipv4.ip_unprivileged_port_start=0 arm64v8/haproxy:2.3
注意,您主机的 /path/to/etc/haproxy 文件夹应包含一个名为 haproxy.cfg 的文件。如果此配置文件引用了该文件夹中的其他文件,则应确保这些文件也存在(例如模板文件 400.http、404.http 等)。但是,许多最小配置不需要任何支持文件。
如果您使用绑定挂载来挂载配置,并且已编辑 haproxy.cfg 文件,可以通过向容器发送 SIGHUP 信号来使用HAProxy的优雅重载功能:
console$ docker kill -s HUP my-running-haproxy
镜像中的入口点脚本会检查是否运行 haproxy 命令,并将其替换为HAProxy上游的 haproxy-systemd-wrapper,该包装器负责信号处理以实现优雅重载。在底层,这使用了 haproxy 的 -sf 选项,因此"在高负载情况下,可能会有两个几毫秒的小窗口,期间可能会注意到一些连接失败"(参见停止和重启HAProxy)。
arm64v8/haproxy 镜像有多种版本,每种版本设计用于特定用例。
arm64v8/haproxy:<version>这是默认镜像。如果您不确定自己的需求,可能需要使用此版本。它既可以用作临时容器(挂载源代码并启动容器以运行应用),也可以作为构建其他镜像的基础。
其中一些标签可能包含如trixie之类的名称。这些是Debian发行版的代号,表示镜像所基于的发行版。如果您的镜像需要安装超出镜像自带的其他软件包,您可能需要显式指定其中一个代号,以最大程度减少Debian新版本发布时的中断。
arm64v8/haproxy:<version>-alpine此镜像基于流行的Alpine Linux项目,可在alpine官方镜像中获取。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常会生成更精简的镜像。
当最终镜像大小尽可能小是您的主要关注点时,此变体非常有用。需要注意的是,它使用musl libc而不是glibc及相关库,因此软件可能会根据其libc需求/假设的深度而遇到问题。有关可能出现的问题以及使用基于Alpine的镜像的优缺点比较,请参见此Hacker News评论线程。
为了最小化镜像大小,在基于Alpine的镜像中通常不包含额外的相关工具(如 git 或 bash)。以此镜像为基础,可在您自己的Dockerfile中添加所需的工具(如果不熟悉如何安装软件包,请参见alpine镜像描述中的示例)。
查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)约束。
一些能够自动检测到的其他许可证信息可能位于repo-info仓库的 haproxy/ 目录中。
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可证。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务