【Docker】apache 容器化部署

Apache环境标准软件基于Bitnami apache 构建。当前版本为2.4.58

你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取

配置文件地址: https://gitee.com/qingplus/qingcloud-platform

QingHub部署

Hosting a static website

该/app路径配置为 Apache DocumentRoot。此处安装的内容由默认的default catch-all虚拟主机提供。

console 复制代码
docker run --name apache -v /path/to/app:/app bitnami/apache:latest

或使用 Docker Compose:

yaml 复制代码
version: '2'

services:
  apache:
    image: 'bitnami/apache:latest'
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - /path/to/app:/app

注意:由于这是一个非根容器,因此挂载的文件和目录必须具有 UID 的适当权限1001。

从主机访问您的服务器

要从主机访问 Web 服务器,您可以要求 Docker 将主机上的随机端口映射到8080容器8443中公开的端口。

console 复制代码
docker run --name apache -P bitnami/apache:latest

运行docker port以确定 Docker 分配的随机端口。

console 复制代码
$ docker port apache
8443/tcp -> 0.0.0.0:32768
8080/tcp -> 0.0.0.0:32769

您还可以手动指定要从主机转发到容器的端口。

console 复制代码
docker run -p 8080:8080 -p 8443:8443 bitnami/apache:latest

通过导航到http://localhost:8080/来访问您的浏览器中的 Web 服务器。

配置

环境变量

可定制的环境变量
Name Description Default Value
APACHE_SERVER_TOKENS Apache ServerTokens 指令。 Prod
只读环境变量
Name Description Value
WEB_SERVER_TYPE 网络服务器类型 apache
APACHE_BASE_DIR Apache 安装目录。 ${BITNAMI_ROOT_DIR}/apache
APACHE_BIN_DIR 二进制可执行文件的 Apache 目录。 ${APACHE_BASE_DIR}/bin
APACHE_CONF_DIR Apache 配置目录。 ${APACHE_BASE_DIR}/conf
APACHE_DEFAULT_CONF_DIR Apache 默认配置目录。 ${APACHE_BASE_DIR}/conf.default
APACHE_HTDOCS_DIR 包含要通过 Apache 提供服务的 HTTP 文件的目录。 ${APACHE_BASE_DIR}/htdocs
APACHE_TMP_DIR 运行时临时文件的 Apache 目录。 ${APACHE_BASE_DIR}/var/run
APACHE_LOGS_DIR Apache 日志目录。 ${APACHE_BASE_DIR}/logs
APACHE_VHOSTS_DIR 虚拟主机的 Apache 目录。 ${APACHE_CONF_DIR}/vhosts
APACHE_HTACCESS_DIR htaccess 文件的 Apache 目录。 ${APACHE_VHOSTS_DIR}/htaccess
APACHE_CONF_FILE Apache 配置的路径。 ${APACHE_CONF_DIR}/httpd.conf
APACHE_PID_FILE Apache PID 文件的路径。 ${APACHE_TMP_DIR}/httpd.pid
APACHE_DAEMON_USER Apache 系统用户。 daemon
APACHE_DAEMON_GROUP Apache system group. daemon
APACHE_DEFAULT_HTTP_PORT_NUMBER 在构建时启用的默认 Apache HTTP 端口号。 8080
APACHE_DEFAULT_HTTP_PORT_NUMBER 在构建时启用的默认 Apache HTTP 端口号。 80
APACHE_DEFAULT_HTTPS_PORT_NUMBER 在构建时启用的默认 Apache HTTPS 端口号。 8443
APACHE_DEFAULT_HTTPS_PORT_NUMBER 在构建时启用的默认 Apache HTTPS 端口号。 443

当您启动 Apache image时,您可以通过在 docker-compose 文件或命令行上传递一个或多个环境变量来调整实例的配置docker run。如果要添加新的环境变量:

  • 对于 docker-compose,在应用程序部分下添加变量名称和值:
yaml 复制代码
version: '2'

services:
  apache:
    image: 'bitnami/apache:latest'
    ports:
      - '80:8081'
      - '443:8443'
    environment:
      - APACHE_HTTP_PORT_NUMBER=8081
  • 对于手动执行,-e为每个变量和值添加一个选项:
console 复制代码
docker run -d --name apache -p 80:8081 -p 443:443 \
  --network apache-tier \
  --e APACHE_HTTP_PORT_NUMBER=8081 \
  bitnami/apache:latest

添加自定义虚拟主机

默认情况httpd.conf下包括放置在/opt/bitnami/apache/conf/vhosts/. 您可以挂载my_vhost.conf到虚拟主机的文件/vhosts。

例如,为了添加一个虚拟主机www.example.com

Step 2:使用以下内容编写文件my_vhost.conf
apache 复制代码
<VirtualHost *:8080>
  ServerName www.example.com
  DocumentRoot "/app"
  <Directory "/app">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>
Step 2: 将配置挂载为卷
console 复制代码
docker run --name apache \
  -v /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro \
  bitnami/apache:latest

或使用 Docker Compose:

yaml 复制代码
version: '2'

services:
  apache:
    image: 'bitnami/apache:latest'
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro

使用自定义 SSL 证书

*注意:*以下步骤假设您使用自定义域名,并且您已将自定义域名配置为指向您的服务器。

该容器附带了已预先配置的 SSL 支持,并配有虚拟证书(server.crt以及server.key中的文件/certs)。如果您想使用自己的证书 ( .crt) 和证书密钥 ( .key) 文件,请按照以下步骤操作:

Step 1: 准备您的证书文件

在您的本地计算机中,创建一个名为certs的文件夹并放置您的证书文件。确保将两个文件分别重命名为server.crt和server.key:

console 复制代码
mkdir /path/to/apache-certs -p
cp /path/to/certfile.crt /path/to/apache-certs/server.crt
cp /path/to/keyfile.key  /path/to/apache-certs/server.key
Step 2: 运行 Apache image

从主机安装证书目录运行 Apache image,

console 复制代码
docker run --name apache \
  -v /path/to/apache-certs:/certs \
  bitnami/apache:latest

或使用 Docker Compose:

yaml 复制代码
version: '2'

services:
  apache:
    image: 'bitnami/apache:latest'
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - /path/to/apache-certs:/certs

Full configuration

该image在/opt/bitnami/apache/conf中查找配置。您可以使用自己的自定义配置文件覆盖httpd.conf文件。

console 复制代码
docker run --name apache \
  -v /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf \
  bitnami/apache:latest

或使用 Docker Compose:

yaml 复制代码
version: '2'

services:
  apache:
    image: 'bitnami/apache:latest'
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf
相关推荐
hjnjmjkj7 分钟前
基于windows的docker-desktop安装kubenetes以及dashboard
docker·容器·kubernetes
Libby博仙40 分钟前
docker 改了镜像源为阿里云,还是下载失败
阿里云·docker·容器
网络安全(华哥)1 小时前
网络安全服务实施流程管理 网络安全服务体系
运维·服务器·网络
致奋斗的我们1 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
百锦再1 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker
Ares-Wang2 小时前
负载均衡 方式
运维·负载均衡
钗头风2 小时前
3.Docker常用命令
运维·docker·容器
朝九晚五ฺ2 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
不要吃栗子李3 小时前
高级运维:1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。2. 基于 openEuler 构建 LVS-DR 群集。
运维·负载均衡·lvs
ITPUB-微风3 小时前
网易严选DevOps实践:从传统到云原生的演进
运维·云原生·devops