arm32v6/httpd维护者:
Docker社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接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文件的目录。
DockerfiledockerfileFROM arm32v6/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如果你不想在项目中包含Dockerfile,执行以下命令即可:
console$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ arm32v6/httpd:2.4
要自定义httpd服务器的配置,首先从容器中获取上游默认配置:
console$ docker run --rm arm32v6/httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf
然后,将自定义配置COPY为/usr/local/apache2/conf/httpd.conf:
dockerfileFROM arm32v6/httpd:2.4 COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
如果要通过SSL运行Web流量,最简单的设置是将server.crt和server.key COPY或挂载(-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。
arm32v6/httpd镜像有多种版本,每种版本设计用于特定场景。
arm32v6/httpd:<version>这是默认镜像。如果你不确定自己的需求,可能需要使用此版本。它既可用作临时容器(挂载源代码并启动容器以运行应用),也可用作构建其他镜像的基础。
arm32v6/httpd:<version>-alpine此镜像基于流行的Alpine Linux项目,可在alpine官方镜像中获取。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常会生成更精简的镜像。
此变体适用于首要关注最终镜像大小的场景。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能会因对libc的依赖或假设深度而遇到问题。更多关于可能出现的问题及使用Alpine基础镜像的优缺点比较,参见this Hacker News comment thread。
为最小化镜像大小,Alpine基础镜像中通常不包含额外相关工具(如git或bash)。以此镜像为基础,可在自己的Dockerfile中添加所需工具(如果你不熟悉如何安装包,参见alpine镜像描述中的示例)。
查看本镜像所包含软件的许可信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖)。
一些能够自动检测到的额外许可信息可能位于repo-info仓库的httpd/目录中。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可。

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