首页 > 其他分享 >【Docker】wordpress 容器化部署

【Docker】wordpress 容器化部署

时间:2024-03-18 23:00:24浏览次数:32  
标签:容器 DATABASE -- WORDPRESS env wordpress Docker bitnami

WordPress标准软件基于Bitnami wordpress 构建。当前版本为6.4.3

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

qinghub自动安装部署配置库

什么是 WordPress?

WordPress 是世界上最受欢迎的博客和内容管理平台。功能强大但简单,从学生到跨国公司,每个人都可以使用它来构建美观、实用的网站。

Overview of WordPress

快速执行

docker run --name wordpress bitnami/wordpress:latest

使用该 image

WordPress 需要访问 MySQL 或 MariaDB 数据库来存储信息。

使用 Docker 命令行

Step 1: 创建网络
docker network create wordpress-network
Step 2: 创建MariaDB持久化卷并创建MariaDB容器
$ docker volume create --name mariadb_data
docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_wordpress \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_wordpress \
  --network wordpress-network \
  --volume mariadb_data:/bitnami/mariadb \
  bitnami/mariadb:latest
Step 3: 为 WordPress 持久性创建卷并启动容器
$ docker volume create --name wordpress_data
docker run -d --name wordpress \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env WORDPRESS_DATABASE_USER=bn_wordpress \
  --env WORDPRESS_DATABASE_PASSWORD=bitnami \
  --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
  --network wordpress-network \
  --volume wordpress_data:/bitnami/wordpress \
  bitnami/wordpress:latest

访问 : http://your-ip/

使用 Docker Compose 运行应用程序

docker-compose up -d

持久化

如果删除容器,所有数据都将丢失,并且下次运行映像时,数据库将重新初始化。为了避免这种数据丢失,您应该安装一个即使在容器被删除后仍然存在的卷。

为了持久化,您应该在路径上安装一个目录/bitnami/wordpress。如果挂载的目录为空,则首次运行时会对其进行初始化。此外,您应该安装一个卷来持久保存 MariaDB 数据。

mariadb_data上面的示例定义了名为和 的Docker 卷wordpress_data。只要不删除卷,WordPress 应用程序状态就会持续存在。

为了避免无意中删除卷,您可以将主机目录挂载为数据卷。或者,您可以使用卷插件来托管卷数据。

使用 Docker Compose 将主机目录挂载为数据卷

   mariadb:
     ...
     volumes:
-      - 'mariadb_data:/bitnami/mariadb'
+      - /path/to/mariadb-persistence:/bitnami/mariadb
   ...
   wordpress:
     ...
     volumes:
-      - 'wordpress_data:/bitnami/wordpress'
+      - /path/to/wordpress-persistence:/bitnami/wordpress
   ...
-volumes:
-  mariadb_data:
-    driver: local
-  wordpress_data:
-    driver: local

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

使用 Docker 命令行将主机目录挂载为数据卷

Step 1: 创建网络(如果不存在)
docker network create wordpress-network
Step 2. 创建具有主机卷的 MariaDB 容器
docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_wordpress \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_wordpress \
  --network wordpress-network \
  --volume /path/to/mariadb-persistence:/bitnami/mariadb \
  bitnami/mariadb:latest

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

Step 3. 使用主机卷创建 WordPress 容器
docker run -d --name wordpress \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env WORDPRESS_DATABASE_USER=bn_wordpress \
  --env WORDPRESS_DATABASE_PASSWORD=bitnami \
  --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
  --network wordpress-network \
  --volume /path/to/wordpress-persistence:/bitnami/wordpress \
  bitnami/wordpress:latest

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

配置

环境变量

可定制的环境变量
NameDescriptionDefault Value
WORDPRESS_DATA_TO_PERSIST相对于 WordPress 安装目录保留的文件。要提供多个值,请用空格分隔它们。wp-config.php wp-content
WORDPRESS_ENABLE_HTTPS是否默认为 WordPress 启用 HTTPS。no
WORDPRESS_BLOG_NAMEWordPress blog 名称."User's blog"
WORDPRESS_SCHEME生成应用程序 URL 的方案。已弃用WORDPRESS_ENABLE_HTTPS。http
WORDPRESS_HTACCESS_OVERRIDE_NONE将 ApacheAllowOverride变量设置为None. 所有默认指令都将从/opt/bitnami/wordpress/wordpress-htaccess.conf.yes
WORDPRESS_ENABLE_HTACCESS_PERSISTENCE保留 htaccess 的自定义更改。是否坚持就看值WORDPRESS_HTACCESS_OVERRIDE_NONE。/opt/bitnami/wordpress/wordpress-htaccess.confno/opt/bitnami/wordpress/.htaccessno
WORDPRESS_RESET_DATA_PERMISSIONS初始化时强制重置持久数据的所有权/权限,否则假设所有权/权限正确。以非 root 身份运行时被忽略。no
WORDPRESS_TABLE_PREFIX在 WordPress 中使用的表前缀。wp_
WORDPRESS_PLUGINS要安装和激活的 WordPress 插件列表,以逗号分隔。还可以设置为all激活所有当前安装的插件,或none跳过。none
WORDPRESS_SKIP_BOOTSTRAP是否对应用程序执行初始引导。no
WORDPRESS_AUTO_UPDATE_LEVEL允许安装 WordPress 核心的自动更新级别。有效值:major、minor、none。none
WORDPRESS_ENABLE_REVERSE_PROXY启用 WordPress 对反向代理标头的支持no
WORDPRESS_ENABLE_XML_RPC启用 WordPress XML-RPC 端点no
WORDPRESS_USERNAMEWordPress user name.user
WORDPRESS_PASSWORDWordPress user password.bitnami
WORDPRESS_EMAILWordPress user e-mail address.user@example.com
WORDPRESS_FIRST_NAMEWordPress user first name.UserName
WORDPRESS_LAST_NAMEWordPress user last name.LastName
WORDPRESS_ENABLE_MULTISITE启用 WordPress 多站点配置。no
WORDPRESS_MULTISITE_NETWORK_TYPE要启用的 WordPress 多站点网络类型。有效值:subfolder、subdirectory、subdomain。subdomain
WORDPRESS_MULTISITE_EXTERNAL_HTTP_PORT_NUMBERWordPress 多站点的外部 HTTP 端口。80
WORDPRESS_MULTISITE_EXTERNAL_HTTPS_PORT_NUMBERWordPress 多站点的外部 HTTPS 端口。443
WORDPRESS_MULTISITE_ENABLE_NIP_IO_REDIRECTION启用 WordPress 多站点时是否启用 IP 地址重定向到 nip.io 通配符 DNS。仅当在具有子域网络类型的 IP 地址上运行时才支持此功能。no
WORDPRESS_MULTISITE_FILEUPLOAD_MAXKWordPress 多站点上传允许的最大上传文件大小(以千字节为单位)。81920
WORDPRESS_DATABASE_HOSTDatabase server host.$WORDPRESS_DEFAULT_DATABASE_HOST
WORDPRESS_DATABASE_PORT_NUMBERDatabase server port.3306
WORDPRESS_DATABASE_NAMEDatabase name.bitnami_wordpress
WORDPRESS_DATABASE_USERDatabase user name.bn_wordpress
WORDPRESS_DATABASE_PASSWORDDatabase passwordbn_wordpress
WORDPRESS_ENABLE_DATABASE_SSL是否为数据库连接启用SSL。no
WORDPRESS_VERIFY_DATABASE_SSL当数据库连接启用SSL时是否验证数据库SSL证书。yes
WORDPRESS_OVERRIDE_DATABASE_SETTINGS覆盖持久性中的数据库设置。no
WORDPRESS_SMTP_HOSTsmtp host。smpt.126.com
WORDPRESS_SMTP_PORTsmtp port。587
WORDPRESS_SMTP_USERsmtp user。qingcloud
WORDPRESS_SMTP_PASSWORDsmtp password。qingcloud1234
只读环境变量
NameDescriptionValue
WORDPRESS_BASE_DIRWordPress 安装目录。${BITNAMI_ROOT_DIR}/wordpress
WORDPRESS_CONF_FILE配置文件。${WORDPRESS_BASE_DIR}/wp-config.php
WP_CLI_BASE_DIRWP-CLI 安装目录${BITNAMI_ROOT_DIR}/wp-cli
WP_CLI_BIN_DIR二进制文件${WP_CLI_BASE_DIR}/bin
WP_CLI_CONF_DIR配置文件目录${WP_CLI_BASE_DIR}/conf
WP_CLI_CONF_FILE配置文件${WP_CLI_CONF_DIR}/wp-cli.yml
WORDPRESS_VOLUME_DIR用于挂载配置文件的 WordPress 目录。${BITNAMI_VOLUME_DIR}/wordpress
WORDPRESS_DEFAULT_DATABASE_HOST默认 database server host.mariadb
WORDPRESS_DEFAULT_DATABASE_HOST默认 database server host.127.0.0.1
PHP_DEFAULT_MEMORY_LIMIT默认 PHP memory limit.512M
PHP_DEFAULT_POST_MAX_SIZE默认 PHP post_max_size.80M
PHP_DEFAULT_UPLOAD_MAX_FILESIZE默认 PHP upload_max_size.80M
WP_CLI_DAEMON_USERWP-CLI system user.daemon
WP_CLI_DAEMON_GROUPWP-CLI system group.daemon

当您启动 WordPress 映像时,您可以通过在 docker-compose 文件或命令行上传递一个或多个环境变量来调整实例的配置docker run。请注意,某些变量仅在容器首次启动时才被考虑。如果要添加新的环境变量:

  • 对于 docker-compose

    wordpress:
      ...
      environment:
        - WORDPRESS_PASSWORD=my_password
      ...
    
  • 对于手动执行,–env为每个变量和值添加一个选项:

    $ docker run -d --name wordpress -p 80:8080 -p 443:8443 \
      --env WORDPRESS_PASSWORD=my_password \
      --network wordpress-tier \
      --volume /path/to/wordpress-persistence:/bitnami \
      bitnami/wordpress:latest
    

例子

SMTP 配置
  • 修改docker-compose.yml

      wordpress:
        ...
        environment:
          - WORDPRESS_DATABASE_USER=bn_wordpress
          - WORDPRESS_DATABASE_NAME=bitnami_wordpress
          - ALLOW_EMPTY_PASSWORD=yes
          - WORDPRESS_SMTP_HOST=smtp.gmail.com
          - WORDPRESS_SMTP_PORT=587
          - WORDPRESS_SMTP_USER=your_email@gmail.com
          - WORDPRESS_SMTP_PASSWORD=your_password
      ...
    
  • 对于手动执行:

    $ docker run -d --name wordpress -p 80:8080 -p 443:8443 \
      --env WORDPRESS_DATABASE_USER=bn_wordpress \
      --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
      --env WORDPRESS_SMTP_HOST=smtp.gmail.com \
      --env WORDPRESS_SMTP_PORT=587 \
      --env WORDPRESS_SMTP_USER=your_email@gmail.com \
      --env WORDPRESS_SMTP_PASSWORD=your_password \
      --network wordpress-tier \
      --volume /path/to/wordpress-persistence:/bitnami \
      bitnami/wordpress:latest
    
将 WordPress 容器连接到现有数据库

WordPress 容器支持将 WordPress 应用程序连接到外部数据库。这是为 WordPress 使用外部数据库的示例。

  • 修改docker-compose.yml

       wordpress:
         ...
         environment:
    -      - WORDPRESS_DATABASE_HOST=mariadb
    +      - WORDPRESS_DATABASE_HOST=mariadb_host
           - WORDPRESS_DATABASE_PORT_NUMBER=3306
           - WORDPRESS_DATABASE_NAME=wordpress_db
           - WORDPRESS_DATABASE_USER=wordpress_user
    -      - ALLOW_EMPTY_PASSWORD=yes
    +      - WORDPRESS_DATABASE_PASSWORD=wordpress_password
         ...
    
  • 对于手动执行:

    $ docker run -d --name wordpress\
      -p 8080:8080 -p 8443:8443 \
      --network wordpress-network \
      --env WORDPRESS_DATABASE_HOST=mariadb_host \
      --env WORDPRESS_DATABASE_PORT_NUMBER=3306 \
      --env WORDPRESS_DATABASE_NAME=wordpress_db \
      --env WORDPRESS_DATABASE_USER=wordpress_user \
      --env WORDPRESS_DATABASE_PASSWORD=wordpress_password \
      --volume wordpress_data:/bitnami/wordpress \
      bitnami/wordpress:latest
    

如果数据库已包含以前 WordPress 安装的数据,您需要将变量设置WORDPRESS_SKIP_BOOTSTRAP为yes. 否则,容器将执行安装向导并可以修改数据库中的现有数据。请注意,当设置WORDPRESS_SKIP_BOOTSTRAP为时yes,环境变量(例如WORDPRESS_USERNAME、WORDPRESS_PASSWORD或 )的值WORDPRESS_EMAIL将被忽略。确保在此导入的数据库中,表前缀与 中设置的表前缀匹配WORDPRESS_TABLE_PREFIX。

WP-CLI 工具

WordPress 容器包含命令行界面wp-cli,可以帮助您管理 WP 站点并与之交互。要运行此工具,请注意您需要使用正确的系统用户daemon。

这是使用wp-cli显示帮助菜单的示例:

  • 使用docker-compose命令:
docker-compose exec wordpress wp help
  • 使用docker命令:
docker exec wordpress wp help

日志

WordPress Docker 映像将容器日志发送到stdout. 要查看日志:

docker logs wordpress

使用docker-compose命令:

docker-compose logs wordpress

标签:容器,DATABASE,--,WORDPRESS,env,wordpress,Docker,bitnami
From: https://blog.csdn.net/tanlintanlin/article/details/136800112

相关文章

  • webapi通过docker部署到Linux的两种方式
    docker安装官网删除dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine安装sudoyuminstall-yyum-utilssudoyum-config-manage......
  • [nginx] 基于docker安装nginx
    0序环境信息OS:CENTOS7.9Docker:25.0.4Nginx:1.24.01安装步骤Step0安装docker略。可参见:[Docker]基于CENTOS7安装Docker环境-博客园/千千寰宇基于Docker安装MYSQL/Step1安装docker环境-博客园/千千寰宇Step1下载nginx镜像下载nginx镜......
  • Docker小册
    先挂一下大佬笔记:https://www.yuque.com/tmfl/cloud/naxbauDocker简介是什么为什么会有docker的出现?docker的理念是什么?总结解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。容器与虚拟机比较能干嘛去哪里下载Docker的......
  • 传统虚拟化与容器的区别
    什么是虚拟化?由于成本的过大开销,出现了虚拟化技术;虚拟化,大白话理解就是:服务器上建虚拟机,不同的虚拟机跑不同的业务好处:避免了资源的浪费减少了成本的花销坏处:虚拟化相对于真实的硬件服务器来说,性能低、稳定性不高。对数据安全性和稳定性有一定要求的,不建议使用虚拟化技......
  • Docker部署Django项目——基础
    1.服务器配置1.1centos7系统的安装centos-7-isos-x86_64安装包下载)VMware安装自定义配置选择对应的系统镜像一般选择内核4核、内存8g、硬盘80g相关配置1.2.网络配置1.2.1查看win电脑虚拟机VMnet8的ip使用ipconfig查看虚拟机的ip1.2.2配置虚拟机VMne......
  • 解决问题:java、mysql、docker、linux、redis、solr适合初级或者刚入门的大学生
    java、mysql、redis、linux、docker中的问题Java问题解决,idea问题解决调试,服务器问题解决,项目部署,项目调试linux服务器上的安装以及运行环境的部署docker的部署可做技术栈:java开发:javaweb,jsp,servlet,javase,spring,springboot,ssm服务器:linux问题docker问题,To......
  • step-by-step系列之-openGauss1-0-1-Docker版本单机安装指南
    stepbystep系列之:openGauss1.0.1Docker版本单机安装指南1.软硬件环境硬件环境:项目最低配置推荐配置测试配置硬盘用于安装openGauss的硬盘需最少满足如下要求:至少1GB用于安装openGauss的应用程序包。每个主机需大约300MB用于元数据存储。预留70%以上的磁盘剩......
  • step-by-step之-install-docker版本opengauss1-0-1主备机群
    stepbystep之:installdocker版本opengauss1.0.1主备机群实验环境说明:OS:2颗8核心8GB内存。1.流程:先安装docker软件,下载Docker镜像,在创建启动主备容器数据库,进入数据库,进行主备切换试验。2.安装docker软件[root@node1~]#yum-yinstalldocker#检查docke......
  • WordPress自动生成原创文章插件
    WordPress作为最受欢迎的内容管理系统之一,为博客和网站的搭建提供了便捷的解决方案。而在内容创作方面,自动生成原创文章的插件为WordPress用户提供了更为高效的选项。什么是WordPress自动生成原创文章插件?WordPress自动生成原创文章插件是一类功能强大的工具,它们通过结合......
  • docker desktop体验
    1.到官网下载docker forwindows2.设置镜像源 3.修改镜像存储地址wsl--exportdocker-desktopE:\docker-desktop.tarwsl--exportdocker-desktop-dataE:\docker-desktop-data.tarwsl--unregisterdocker-desktopwsl--unregisterdocker-desktop-data//路径......