• 【Docker】apache 容器化部署


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

    你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
    配置文件地址: https://gitee.com/qingplus/qingcloud-platform

    QingHub部署

    快速启动样例

    在容器中/app路径默认为配置为 Apache DocumentRoot 目录。

    docker run --name apache -v /path/to/app:/app bitnami/apache:latest
    
    • 1

    或使用 Docker Compose:

    version: '2'
    
    services:
      apache:
        image: 'bitnami/apache:latest'
        ports:
          - '80:8080'
          - '443:8443'
        volumes:
          - /path/to/app:/app
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    从主机访问您的服务器

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

    docker run --name apache -P bitnami/apache:latest
    
    • 1

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

    $ docker port apache
    8443/tcp -> 0.0.0.0:32768
    8080/tcp -> 0.0.0.0:32769
    
    • 1
    • 2
    • 3

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

    docker run -p 8080:8080 -p 8443:8443 bitnami/apache:latest
    
    • 1

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

    配置

    环境变量

    可定制的环境变量
    NameDescriptionDefault Value
    APACHE_SERVER_TOKENSApache ServerTokens 指令。Prod
    只读环境变量
    NameDescriptionValue
    WEB_SERVER_TYPE网络服务器类型apache
    APACHE_BASE_DIRApache 安装目录。${BITNAMI_ROOT_DIR}/apache
    APACHE_BIN_DIR二进制可执行文件的 Apache 目录。${APACHE_BASE_DIR}/bin
    APACHE_CONF_DIRApache 配置目录。${APACHE_BASE_DIR}/conf
    APACHE_DEFAULT_CONF_DIRApache 默认配置目录。${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_DIRApache 日志目录。${APACHE_BASE_DIR}/logs
    APACHE_VHOSTS_DIR虚拟主机的 Apache 目录。${APACHE_CONF_DIR}/vhosts
    APACHE_HTACCESS_DIRhtaccess 文件的 Apache 目录。${APACHE_VHOSTS_DIR}/htaccess
    APACHE_CONF_FILEApache 配置的路径。${APACHE_CONF_DIR}/httpd.conf
    APACHE_PID_FILEApache PID 文件的路径。${APACHE_TMP_DIR}/httpd.pid
    APACHE_DAEMON_USERApache 系统用户。daemon
    APACHE_DAEMON_GROUPApache 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,在应用程序部分下添加变量名称和值:
    version: '2'
    
    services:
      apache:
        image: 'bitnami/apache:latest'
        ports:
          - '80:8081'
          - '443:8443'
        environment:
          - APACHE_HTTP_PORT_NUMBER=8081
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 对于手动执行,-e为每个变量和值添加一个选项:
    docker run -d --name apache -p 80:8081 -p 443:443 \
      --network apache-tier \
      --e APACHE_HTTP_PORT_NUMBER=8081 \
      bitnami/apache:latest
    
    • 1
    • 2
    • 3
    • 4

    添加自定义虚拟主机

    默认情况httpd.conf下包括放置在/opt/bitnami/apache/conf/vhosts/. 您可以挂载my_vhost.conf到虚拟主机的文件/vhosts。
    例如,为了添加一个虚拟主机www.example.com:

    Step 2:使用以下内容编写文件my_vhost.conf
    
      ServerName www.example.com
      DocumentRoot "/app"
      
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    Step 2: 将配置挂载为卷
    docker run --name apache \
      -v /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro \
      bitnami/apache:latest
    
    • 1
    • 2
    • 3

    或使用 Docker Compose:

    version: '2'
    
    services:
      apache:
        image: 'bitnami/apache:latest'
        ports:
          - '80:8080'
          - '443:8443'
        volumes:
          - /path/to/my_vhost.conf:/vhosts/my_vhost.conf:ro
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    使用自定义 SSL 证书

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

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

    Step 1: 准备您的证书文件

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

    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
    
    • 1
    • 2
    • 3
    Step 2: 运行 Apache image

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

    docker run --name apache \
      -v /path/to/apache-certs:/certs \
      bitnami/apache:latest
    
    • 1
    • 2
    • 3

    或使用 Docker Compose:

    version: '2'
    
    services:
      apache:
        image: 'bitnami/apache:latest'
        ports:
          - '80:8080'
          - '443:8443'
        volumes:
          - /path/to/apache-certs:/certs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Full configuration

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

    docker run --name apache \
      -v /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf \
      bitnami/apache:latest
    
    • 1
    • 2
    • 3

    或使用 Docker Compose:

    version: '2'
    
    services:
      apache:
        image: 'bitnami/apache:latest'
        ports:
          - '80:8080'
          - '443:8443'
        volumes:
          - /path/to/httpd.conf:/opt/bitnami/apache/conf/httpd.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    工作之余,学习Go,快速入门,第一节:变量
    假设检验3
    Talk预告 | FAIR研究科学家刘壮:高效和可扩展的视觉神经网络架构
    【Try to Hack】vulnhub DC2
    go协程的栈
    Head、Neck、Backbone介绍
    网络隔离环境下的跨网数据传输,如何保障安全性?
    c 技巧 之 ungetc 函数 回退字符
    四川翌加:横拍和竖拍抖音短视频哪个更好
    聊聊分布式架构——序列化和反序列化
  • 原文地址:https://blog.csdn.net/tanlintanlin/article/details/136605421