amd64/httpdamd64/httpd 镜像是 Apache HTTP Server(简称 Apache)的官方 Docker 镜像,专为 amd64 架构构建。Apache 是一款广泛使用的 Web 服务器应用,在万维网发展初期发挥了关键作用,自 1996 年 4 月起一直是最流行的 HTTP 服务器之一。该镜像提供了轻量级、可移植的 Apache 运行环境,适用于快速部署静态或动态 Web 服务。
以下标签对应不同版本和基础镜像,链接指向对应的 Dockerfile 源码:
Debian 基础镜像:
2.4.65, 2.4, 2, latest, 2.4.65-trixie, 2.4-trixie, 2-trixie, trixie
Alpine 基础镜像:
2.4.65-alpine, 2.4-alpine, 2-alpine, alpine, 2.4.65-alpine3.22, 2.4-alpine3.22, 2-alpine3.22, alpine3.22
该镜像支持多种硬件架构,对应不同 Docker 仓库:
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le、riscv64、s390x
适用于需要预先打包静态资源或自定义配置的场景。
在项目根目录创建 Dockerfile:
dockerfileFROM amd64/httpd:2.4 # 将本地静态资源目录复制到 Apache 文档根目录 COPY ./public-html/ /usr/local/apache2/htdocs/
注:
public-html/为本地存放 HTML 文件的目录,需替换为实际路径。
构建并运行镜像:
bash# 构建镜像(标签为 my-apache2) docker build -t my-apache2 . # 后台运行容器(映射主机 8080 端口到容器 80 端口) docker run -dit --name my-running-app -p 8080:80 my-apache2
验证:访问 http://localhost:8080,显示 "It works!" 或自定义页面。
适用于临时测试或快速挂载本地目录的场景。
直接通过 docker run 命令挂载本地目录到容器的文档根目录:
bashdocker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ amd64/httpd:2.4
说明:
-v "$PWD":/usr/local/apache2/htdocs/将当前目录($PWD)挂载到容器内的 Apache 文档根目录,修改本地文件后无需重建镜像即可生效。
Apache 配置文件路径为 /usr/local/apache2/conf/httpd.conf,可通过以下步骤自定义:
从容器中导出默认配置文件:
bashdocker run --rm amd64/httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf
编辑 my-httpd.conf 修改配置(如端口、虚拟主机、模块加载等)。
通过 Dockerfile 覆盖默认配置:
dockerfileFROM amd64/httpd:2.4 COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
构建并运行:
bashdocker build -t my-custom-apache . docker run -dit --name my-custom-app -p 8080:80 my-custom-apache
实现 HTTPS 需加载 SSL 模块并配置证书,步骤如下:
准备 SSL 证书文件(server.crt 公钥和 server.key 私钥),放置于本地目录(如 ./ssl/)。
修改 Apache 配置文件,启用 SSL 模块和相关配置:
my-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
通过 Dockerfile 复制证书和配置:
dockerfileFROM amd64/httpd:2.4 # 复制自定义配置 COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf # 复制 SSL 证书和密钥 COPY ./ssl/server.crt /usr/local/apache2/conf/ COPY ./ssl/server.key /usr/local/apache2/conf/
或通过 sed 命令在构建时修改默认配置(无需手动编辑文件):
dockerfileFROM amd64/httpd:2.4 RUN 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 COPY ./ssl/server.crt /usr/local/apache2/conf/ COPY ./ssl/server.key /usr/local/apache2/conf/
运行容器时映射 HTTPS 端口(443):
bashdocker run -dit --name my-ssl-app -p 8080:80 -p 443:443 my-ssl-apache
验证:访问 https://localhost,浏览器显示证书信息及页面内容。
amd64/httpd 提供两种基础镜像变体,适用于不同需求:
标签格式:amd64/httpd:<version>(如 2.4.65、latest)。
trixie 版本),包含完整的系统工具链。apt 包)的场景。标签格式:amd64/httpd:<version>-alpine(如 2.4.65-alpine、alpine)。
musl libc 替代 glibc。glibc 的软件可能存在兼容性问题,需测试验证。镜像元数据及构建信息可在 repo-info 仓库 查看。

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