利用Docker-Compose部署WordPress

1. 实战概述

  • 本实战通过 Docker Compose 部署 WordPress 与 MySQL 容器,配置端口映射、数据库用户及数据持久化,成功实现本地博客系统的搭建、安装、文章发布与数据库验证,并演示了使用 docker-compose down --volumes 彻底清理环境的完整流程。

2. 实战步骤

2.1 创建配置文件目录

  • 执行命令:mkdir wordpress_config
    在这里插入图片描述

2.2 创建Docker编排配置文件

  • 执行命令:cd wordpress_config
    在这里插入图片描述

  • 执行命令:notepad docker-compose.yml,在记事本窗口里编写配置文件
    在这里插入图片描述

    services:
       db:
         image: mysql:8.0
         volumes:
           - db_data:/var/lib/mysql
         restart: always
         ports:
           - "3308:3306"
         environment:
           MYSQL_ROOT_PASSWORD: 903213
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: 903213
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         ports:
           - "8000:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: 903213
           WORDPRESS_DB_NAME: wordpress
    volumes:
        db_data: {}
    
  • 配置说明:此配置通过 Docker Compose 启动一个 WordPress 网站和 MySQL 数据库服务。数据库(MySQL 8.0)映射宿主机3308端口,设置root密码及wordpress专用用户。WordPress容器连接数据库,并通过宿主机8000端口提供服务。数据卷db_data用于持久化数据库数据,确保数据在容器重启后依然保留。所有服务均设为自动重启,以保证高可用性。

2.3 构建WordPress项目

  • 执行命令:docker-compose up -d
    在这里插入图片描述

  • 结果说明:执行 docker-compose up -d 后,Docker 成功创建并启动了 WordPress 项目的所有组件:网络、数据卷、MySQL 容器和 WordPress 容器。四个任务均顺利完成,服务已运行在后台,端口映射生效(3308:3306 和 8000:80),系统可正常访问数据库和 Web 服务,部署流程成功完成。

  • 执行命令:docker ps -a --filter "name=wordpress"
    在这里插入图片描述

  • 结果说明:执行 docker ps -a --filter "name=wordpress" 后,成功显示名称包含“wordpress”的容器。结果显示 WordPress 和 MySQL 容器均已启动并运行正常,状态为 Up,端口映射正确(8000:80 和 3308:3306),服务部署成功,可通过浏览器访问 http://localhost:8000 进行 WordPress 安装与使用。

2.4 安装WordPress

  • 在浏览器里访问http://localhost:8000/wp-admin/install.php
    在这里插入图片描述
  • 在列表框里选择简体中文
    在这里插入图片描述
  • 单击【继续】按钮,在窗口里设置相应信息
    在这里插入图片描述
  • 单击【安装WordPress】按钮
    在这里插入图片描述

2.5 使用WordPress

2.5.1 登录WordPress

  • 单击【登录】超链接,输入用户名和密码
    在这里插入图片描述
  • 单击【登录】按钮
    在这里插入图片描述

2.5.2 创建并发布文章

  1. 查看文章列表
    在这里插入图片描述
  2. 查看指定文章内容
    在这里插入图片描述
  3. 写一篇文章
    • 返回文章列表页面
      在这里插入图片描述

    • 单击【写文章】按钮
      在这里插入图片描述

    • 添加标题和文章内容
      在这里插入图片描述

    • 单击【发布】按钮
      在这里插入图片描述

    • 单击【发布】按钮
      在这里插入图片描述

    • 查看文章列表
      在这里插入图片描述

2.6 查看wordpress数据库

  • 创建数据库连接 - WordPressMySQL
    在这里插入图片描述
  • 查看wordpress数据库
    在这里插入图片描述
  • 查看wp_posts表记录
    在这里插入图片描述

2.7 停止并移除WordPress容器不保留命名卷

  • 执行命令:docker-compose down --volumes
    在这里插入图片描述
  • 结果说明:执行 docker-compose down --volumes 后,Docker 成功停止并删除了 WordPress 和 MySQL 容器、默认网络以及数据卷 wordpress_config_db_data。该操作彻底清理了所有相关资源,包括持久化数据,适用于环境重置或完全卸载场景,确保无残留文件和配置。

3. 实战总结

  • 本次实战基于 Docker Compose 成功部署了 WordPress 与 MySQL 8.0 的完整应用环境。通过合理配置 docker-compose.yml,实现了数据库初始化、服务依赖管理、端口映射(3308:3306 和 8000:80)及数据持久化。系统启动后,通过浏览器顺利完成 WordPress 安装、中文设置、用户登录、文章创建与发布等核心操作,并在 Navicat 中验证了数据库中 wp_posts 表的数据写入,确认前后端数据一致性。最后,使用 docker-compose down --volumes 命令彻底清除容器、网络和数据卷,实现环境的干净卸载。整个过程展示了容器化部署 Web 应用的高效性、可移植性与易维护性,为开发测试和教学提供了标准化实践范例。
内容概要:本文介绍了一种基于蒙特卡洛模拟和拉格朗日优化方法的电动汽车充电站有序充电调度策略,重点针对分时电价机制下的分散式优化问题。通过Matlab代码实现,构建了考虑用户充电需求、电网负荷平衡及电价波动的数学模【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)型,采用拉格朗日乘子法处理约束条件,结合蒙特卡洛方法模拟大量电动汽车的随机充电行为,实现对充电功率和时间的优化分配,旨在降低用户充电成本、平抑电网峰谷差并提升充电站运营效率。该方法体现了智能优化算法在电力系统调度中的实际应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源汽车、智能电网相关领域的工程技术人员。; 使用场景及目标:①研究电动汽车有序充电调度策略的设计与仿真;②学习蒙特卡洛模拟与拉格朗日优化在能源系统中的联合应用;③掌握基于分时电价的需求响应优化建模方法;④为微电网、充电站运营管理提供技术支持和决策参考。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注目标函数构建、约束条件处理及优化求解过程,可尝试调整参数设置以观察不同场景下的调度效果,进一步拓展至多目标优化或多类型负荷协调调度的研究。
<think> 我们参考了上述引用内容,特别是引用[2]和引用[3]中关于使用Docker Compose部署WordPress的步骤。下面将提供一个清晰的、逐步的部署指南。请注意,我们将结合最佳实践和常见配置进行说明。 ### 使用Docker Compose部署WordPress的详细步骤 #### 1. 准备工作 - 确保已安装DockerDocker Compose。如果没有安装,请参考官方文档进行安装。 - 安装Docker: https://docs.docker.com/engine/install/ - 安装Docker Compose: https://docs.docker.com/compose/install/ - 创建一个项目目录,用于存放`docker-compose.yml`文件和其他相关文件。 #### 2. 创建`docker-compose.yml`文件 在项目目录中创建`docker-compose.yml`文件,并写入以下内容。这里我们使用一个典型的配置,包括WordPress服务和MySQL数据库服务。 ```yaml version: '3.8' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: your_mysql_root_password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: your_mysql_password restart: always networks: - wordpress_net wordpress: depends_on: - db image: wordpress:latest ports: - "8080:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: your_mysql_password WORDPRESS_DB_NAME: wordpress volumes: - wordpress_data:/var/www/html networks: - wordpress_net volumes: db_data: wordpress_data: networks: wordpress_net: ``` **注意:** - 请将`your_mysql_root_password`和`your_mysql_password`替换为强密码。 - 这里我们使用了两个命名卷(`db_data`和`wordpress_data`)来持久化数据库和WordPress文件。 - 服务间通过自定义网络`wordpress_net`通信。 #### 3. 启动服务 在项目目录下运行以下命令启动服务: ```bash docker-compose up -d ``` - `-d`参数表示在后台运行。 - 首次运行会下载所需的镜像(mysql和wordpress),这可能需要一些时间。 #### 4. 验证服务 - 访问WordPress:在浏览器中输入`http://localhost:8080`(如果部署在本地服务器)或`http://<你的服务器IP>:8080`。 - 如果看到WordPress安装界面,则表示部署成功。 #### 5. 配置反向代理(可选) 如果你希望通过域名(如`www.example.com`)访问,并且使用80/443端口,可以配置Nginx反向代理。以下是一个简单的Nginx配置示例: 在Nginx的配置文件中(如`/etc/nginx/sites-available/example.com`)添加: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 然后重启Nginx: ```bash sudo systemctl reload nginx ``` #### 6. 停止和清理 - 停止服务(在项目目录下): ```bash docker-compose down ``` - 如果希望同时删除数据卷(持久化数据),则: ```bash docker-compose down -v ``` ### 注意事项 1. **安全性**:确保使用强密码,并且不要将`docker-compose.yml`文件中的密码直接暴露在公共仓库中。对于生产环境,考虑使用Docker secrets或环境变量文件来管理敏感信息。 2. **更新**:可以通过重新运行`docker-compose up -d`来更新服务(当有新的镜像可用时)。 3. **备份**:定期备份数据卷(位于Docker存储卷中)。 通过以上步骤,你应该能够成功使用Docker Compose部署WordPress。如果遇到问题,可以检查容器日志: ```bash docker-compose logs ``` §§相关问题§§ 1. 如何为Docker Compose中的服务设置环境变量文件? 2. 如何备份和恢复Docker卷中的WordPress数据? 3. 如何配置HTTPS(SSL/TLS)来保护WordPress站点? </think> ### 使用 Docker Compose 部署 WordPress 的详细步骤 #### 1. 安装 DockerDocker Compose ```bash # 安装 Docker(Ubuntu 示例) sudo apt update sudo apt install docker.io # 安装 Docker Compose sudo apt install python3-pip sudo pip3 install docker-compose # 验证安装 docker --version # 应返回 Docker 版本 docker-compose --version # 应返回 Compose 版本 ``` #### 2. 创建项目目录和配置文件 ```bash mkdir wordpress && cd wordpress touch docker-compose.yml ``` #### 3. 配置 `docker-compose.yml` 文件 ```yaml version: '3.8' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: your_mysql_root_password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: your_mysql_password restart: always wordpress: depends_on: - db image: wordpress:latest ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: your_mysql_password WORDPRESS_DB_NAME: wordpress volumes: - wordpress_data:/var/www/html restart: always volumes: db_data: wordpress_data: ``` > **参数说明**: > - `db`: MySQL 数据库服务 > - `volumes`: 持久化存储数据库和网站数据 > - `ports`: `8080:80` 表示主机 8080 端口映射到容器 80 端口 > - `environment`: 配置数据库连接参数(需替换 `your_xxx_password`) > - 完整配置参考:[官方文档](https://docs.docker.com/compose/compose-file/) #### 4. 启动服务 ```bash # 后台启动容器 docker-compose up -d # 查看运行状态 docker-compose ps ``` > 预期输出: > ``` > Name Command State Ports > -------------------------------------------------------------------------- > wordpress_db_1 docker-entrypoint.sh mysqld Up 3306/tcp > wordpress_wordpress_1 apache2-foreground Up 0.0.0.0:8080->80/tcp > ``` #### 5. 完成 WordPress 安装 1. 浏览器访问 `http://your-server-ip:8080` 2. 按向导设置: - 选择语言 → 填写站点信息 → 创建管理员账户 3. 完成安装后登录后台:`http://your-server-ip:8080/wp-admin` #### 6. 常见管理命令 ```bash # 停止服务(保留数据) docker-compose down # 停止并删除所有数据 docker-compose down -v # 查看实时日志 docker-compose logs -f # 更新容器镜像 docker-compose pull docker-compose up -d ``` #### 配置优化建议 1. **安全加固**: - 修改默认端口(如 `8080`→`8888`) - 使用强密码(建议 16 位含大小写+数字+符号) 2. **持久化备份**: ```bash # 备份数据卷 docker run --rm -v wordpress_wordpress_data:/source -v $(pwd):/backup alpine tar czf /backup/wordpress_backup.tar.gz /source ``` 3. **HTTPS 配置**: - 在 `docker-compose.yml` 中添加反向代理容器(如 Nginx) - 使用 Let's Encrypt 自动签发证书 > 注意:首次启动时若出现数据库连接失败,等待 1-2 分钟重试(MySQL 初始化需要时间)[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值