Bitnami Apache 镜像是基于 Apache HTTP Server 的容器化部署方案。Apache HTTP Server 是一款开源的 HTTP 服务器,旨在提供安全、高效且可扩展的 HTTP 服务,符合当前 HTTP 标准。Bitnami 镜像通过安全加固、标准化配置和简化部署流程,适用于开发、测试及生产环境中的静态网站托管、反向代理和 Web 服务前端等场景。
consoledocker run --name apache bitnami/apache:latest
配置选项详见 环境变量 部分。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,通过新的 Bitnami Secure Images 计划 提供精选的安全加固镜像。过渡期安排如下:
更多详情参见 https://github.com/bitnami/containers/issues/83267%E3%80%82
从 Docker Hub 拉取
推荐通过 Docker Hub 获取预构建镜像:
console# 获取最新版 docker pull bitnami/apache:latest # 获取特定版本(需替换 [TAG],如 2.4.58) docker pull bitnami/apache:[TAG]
本地构建
如需自定义构建,可克隆源码仓库并执行构建命令:
consolegit clone https://github.com/bitnami/containers.git cd bitnami/apache/[VERSION]/[操作系统] # 替换版本和操作系统(如 2.4/debian-12) docker build -t bitnami/apache:latest .
容器默认将 /app 目录配置为 Apache 的 DocumentRoot(文档根目录),挂载本地静态文件至该目录即可提供服务。
Docker 命令示例
consoledocker run --name apache \ -p 8080:8080 -p 8443:8443 \ # 映射 HTTP/HTTPS 端口(容器内默认 8080/8443) -v /本地静态文件路径:/app \ # 挂载本地静态文件到容器 /app bitnami/apache:latest
Docker Compose 示例
yamlversion: '2' services: apache: image: bitnami/apache:latest ports: - "80:8080" # 主机 80 端口映射到容器 HTTP 端口 - "443:8443" # 主机 443 端口映射到容器 HTTPS 端口 volumes: - /本地静态文件路径:/app # 挂载静态文件 restart: unless-stopped
注意:由于容器以非 root 用户(UID 1001)运行,挂载的文件和目录需确保该用户有读权限。
随机端口映射
使用 -P 选项让 Docker 随机映射容器端口,通过 docker port 查看映射关系:
consoledocker run --name apache -P bitnami/apache:latest docker port apache # 输出示例:8080/tcp -> 0.0.0.0:32769
指定端口映射
手动指定主机与容器端口映射(推荐生产环境使用):
consoledocker run --name apache \ -p 80:8080 \ # 主机 80 端口 -> 容器 HTTP 端口 -p 443:8443 \ # 主机 443 端口 -> 容器 HTTPS 端口 bitnami/apache:latest
访问 http://localhost:80 或 https://localhost:443 即可打开网站。
环境变量
可定制环境变量
| 变量名 | 描述 | 默认值 |
|---|---|---|
APACHE_HTTP_PORT_NUMBER | Apache HTTP 服务端口号 | nil |
APACHE_HTTPS_PORT_NUMBER | Apache HTTPS 服务端口号 | nil |
APACHE_SERVER_TOKENS | Apache ServerTokens 指令值 | Prod |
只读环境变量(运行时自动设置)
| 变量名 | 描述 | 值 |
|---|---|---|
WEB_SERVER_TYPE | Web 服务器类型 | apache |
APACHE_BASE_DIR | Apache 安装目录 | ${BITNAMI_ROOT_DIR}/apache |
APACHE_CONF_DIR | 配置文件目录 | ${APACHE_BASE_DIR}/conf |
APACHE_VHOSTS_DIR | 虚拟主机配置目录 | ${APACHE_CONF_DIR}/vhosts |
APACHE_HTDOCS_DIR | 默认文档根目录 | ${APACHE_BASE_DIR}/htdocs |
APACHE_LOGS_DIR | 日志文件目录 | ${APACHE_BASE_DIR}/logs |
APACHE_CONF_FILE | 主配置文件路径 | ${APACHE_CONF_DIR}/httpd.conf |
APACHE_DEFAULT_HTTP_PORT_NUMBER | 默认 HTTP 端口(构建时设置) | 8080 |
APACHE_DEFAULT_HTTPS_PORT_NUMBER | 默认 HTTPS 端口(构建时设置) | 8443 |
环境变量配置示例
通过 -e 参数或 Docker Compose environment 字段设置环境变量:
consoledocker run --name apache \ -p 80:8081 -p 443:8443 \ -e APACHE_HTTP_PORT_NUMBER=8081 \ # 自定义 HTTP 端口为 8081 bitnami/apache:latest
Docker Compose 配置:
yamlversion: '2' services: apache: image: bitnami/apache:latest ports: - "80:8081" - "443:8443" environment: - APACHE_HTTP_PORT_NUMBER=8081 # 自定义 HTTP 端口
添加自定义虚拟主机
Apache 主配置默认包含 /opt/bitnami/apache/conf/vhosts/ 目录下的所有 .conf 文件,通过挂载虚拟主机配置文件至 /vhosts 目录即可生效。
步骤 1:创建虚拟主机配置文件(如 my_vhost.conf)
apache<VirtualHost *:8080> ServerName www.example.com # 域名 DocumentRoot "/app/example" # 该域名的文档根目录 <Directory "/app/example"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
步骤 2:挂载配置文件启动容器
consoledocker run --name apache \ -v /本地路径/my_vhost.conf:/vhosts/my_vhost.conf:ro \ # 只读挂载虚拟主机配置 -v /本地/example网站文件:/app/example \ # 挂载网站文件 bitnami/apache:latest
自定义 SSL 证书
容器默认使用 /certs 目录下的 tls.crt(证书)和 tls.key(私钥)。替换为自定义证书步骤如下:
步骤 1:准备证书文件
将自定义证书重命名为 server.crt 和 server.key,存放于本地目录(如 /path/to/certs):
consolemkdir -p /path/to/certs cp /本地证书路径.crt /path/to/certs/server.crt cp /本地私钥路径.key /path/to/certs/server.key
步骤 2:挂载证书目录启动容器
consoledocker run --name apache \ -v /path/to/certs:/certs \ # 挂载证书目录至容器 /certs bitnami/apache:latest
完整配置覆盖
如需完全自定义 Apache 配置,可直接挂载主配置文件 httpd.conf:
consoledocker run --name apache \ -v /本地/httpd.conf:/opt/bitnami/apache/conf/httpd.conf \ # 覆盖主配置 bitnami/apache:latest
FIPS 配置(Bitnami Secure Images)
安全加固镜像支持 FIPS 模式,通过环境变量 OPENSSL_FIPS 控制:
OPENSSL_FIPS=yes:启用 FIPS 模式(默认)OPENSSL_FIPS=no:禁用 FIPS 模式配置示例:
consoledocker run --name apache \ -e OPENSSL_FIPS=no \ # 禁用 FIPS 模式 bitnami/apache:latest
Apache 可通过 mod_proxy 模块实现反向代理,转发请求至其他容器服务。示例配置(添加至虚拟主机配置或主配置):
apache<VirtualHost *:8080> ServerName api.example.com ProxyPass / http://backend-service:8080/ # 转发至后端服务(需通过 Docker 网络连接) ProxyPassReverse / http://backend-service:8080/ </VirtualHost>
容器将 Apache 日志输出至 stdout,可通过 docker logs 命令查看:
consoledocker logs apache # 查看实时日志 docker logs -f apache # 持续输出日志
Docker Compose 环境:
consoledocker-compose logs apache
如需扩展镜像功能(如安装工具、修改配置),可基于官方镜像构建自定义镜像。示例 Dockerfile:
dockerfileFROM bitnami/apache # 切换至 root 用户执行特权操作 USER 0 # 安装 vim 编辑器(需使用镜像内置包管理器) RUN install_packages vim # 切换回非 root 用户 USER 1001 # 启用 mod_ratelimit 模块 RUN sed -i -r 's/#LoadModule ratelimit_module/LoadModule ratelimit_module/' /opt/bitnami/apache/conf/httpd.conf # 自定义默认 HTTP 端口(运行时可通过环境变量覆盖) ENV APACHE_HTTP_PORT_NUMBER=8181 EXPOSE 8181 8443
步骤 1:拉取最新镜像
consoledocker pull bitnami/apache:latest
步骤 2:备份数据(如挂载的静态文件或配置)
consolersync -a /path/to/挂载数据 /path/to/备份目录_$(date +%Y%m%d-%H%M%S)
步骤 3:停止并删除旧容器
consoledocker stop apache && docker rm apache
步骤 4:启动新容器
consoledocker run --name apache \ -v /path/to/数据:/app \ # 挂载备份的数据 bitnami/apache:latest
tls.crt/tls.key(原 server.crt/server.key),适配 Kubernetes tls 密钥类型。/bitnami/apache,日志仅输出至 stdout。本镜像基于 Apache License 2.0 许可协议。详见 https://github.com/bitnami/containers/blob/main/LICENSE%E3%80%82
商标说明:本镜像由 Bitnami 打包,提及的商标分属各自所有者,不代表关联或背书。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务