arm64v8/httpd注意: 这是httpd官方镜像的arm64v8架构版本仓库。更多信息请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“镜像源在Git中变更后如何处理?”。
维护者:
Docker社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
2.4.65, 2.4, 2, latest, 2.4.65-trixie, 2.4-trixie, 2-trixie, trixie
2.4.65-alpine, 2.4-alpine, 2-alpine, alpine, 2.4.65-alpine3.22, 2.4-alpine3.22, 2-alpine3.22, alpine3.22
问题提交地址:
[***]
支持的架构:(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
镜像 artifact 详情:
repo-info仓库的repos/httpd/目录(历史记录)
(包含镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/httpd标签
official-images仓库的library/httpd文件(历史记录)
本描述的来源:
docs仓库的httpd/目录(历史记录)
Apache HTTP Server(俗称Apache)是一款Web服务器应用,在万维网的初期发展中发挥了关键作用。它最初基于NCSA HTTPd服务器,1995年初NCSA代码开发停滞之后,Apache的开发工作开始。Apache迅速取代NCSA HTTPd成为主流HTTP服务器,自1996年4月以来一直是使用最广泛的HTTP服务器。
***.org/wiki/Apache_HTTP_Server
!logo
本镜像仅包含Apache httpd及上游默认配置,未安装PHP,但可轻松扩展。如需带Apache httpd的PHP环境,可查看PHP镜像的-apache标签。若需运行简单HTML服务器,可在项目中添加Dockerfile,其中public-html/为包含所有HTML文件的目录。
dockerfileFROM arm64v8/httpd:2.4 COPY ./public-html/ /usr/local/apache2/htdocs/
然后运行以下命令构建并运行Docker镜像:
console$ docker build -t my-apache2 . $ docker run -dit --name my-running-app -p 8080:80 my-apache2
访问 http://localhost:8080 即可看到 "It works!"。
若不想在项目中包含Dockerfile,可直接执行以下命令:
console$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ arm64v8/httpd:2.4
要自定义httpd服务器配置,首先从容器中获取上游默认配置:
console$ docker run --rm arm64v8/httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf
然后通过COPY将自定义配置复制为/usr/local/apache2/conf/httpd.conf:
dockerfileFROM arm64v8/httpd:2.4 COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
若需通过SSL运行Web服务,最简单的设置是将server.crt和server.key复制或挂载(-v)到/usr/local/apache2/conf/,然后修改/usr/local/apache2/conf/httpd.conf,移除以下行的注释符号:
apacheconf... #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so ... #LoadModule ssl_module modules/mod_ssl.so ... #Include conf/extra/httpd-ssl.conf ...
conf/extra/httpd-ssl.conf配置文件将使用添加的证书文件,并让守护进程监听443端口。确保在docker run中添加-p 443:443以转发HTTPS端口。
可通过以下sed命令实现:
dockerfileRUN sed -i \ -e 's/^#\(Include .*httpd-ssl.conf\)/\1/' \ -e 's/^#\(LoadModule .*mod_ssl.so\)/\1/' \ -e 's/^#\(LoadModule .*mod_socache_shmcb.so\)/\1/' \ conf/httpd.conf
上述步骤适用于开发环境,生产环境建议自定义配置文件,更多SSL设置信息参见httpd.apache.org。
arm64v8/httpd镜像有多种变体,适用于不同场景。
arm64v8/httpd:<version>这是默认镜像。若不确定需求,建议使用此版本。它既可作为临时容器(挂载源代码并启动容器运行应用),也可作为构建其他镜像的基础。
部分标签包含如trixie等名称,这些是Debian的版本代号,表示镜像基于该Debian版本。若需在镜像中安装额外包,建议显式指定此类标签,以减少Debian新版本带来的兼容性问题。
arm64v8/httpd:<version>-alpine此镜像基于流行的Alpine Linux项目(可在alpine官方镜像中获取)。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此能生成更精简的镜像。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能因libc依赖/假设而出现问题。更多讨论参见此Hacker News评论线程。
为最小化镜像大小,Alpine-based镜像通常不包含额外工具(如git或bash)。如需添加,可在Dockerfile中自行安装(参见alpine镜像描述了解包安装方法)。
查看本镜像中包含软件的许可证信息。
与所有Docker镜像一样,本镜像可能包含其他软件,这些软件可能采用其他许可证(如基础发行版中的Bash等,以及主软件的直接或间接依赖)。
部分自动检测到的额外许可证信息可在repo-info仓库的httpd/目录中找到。
对于任何预构建镜像的使用,镜像用户有责任确保其使用符合其中所有软件的相关许可证要求。

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