Docker怎么安装WordPress?docker部署wordpress详细步骤

在 Docker 上部署 WordPress 是最推荐的方式之一,因为它环境隔离、易于迁移、备份方便,且能轻松实现数据库与网站程序的分离。

以下是使用 Docker Compose 安装 WordPress 的完整教程,这是目前最标准、最稳定的部署方式。

保姆级搭建wordpress博客教程(docker版)
加载中
保姆级搭建wordpress博客教程(docker版)

📋 前置条件

  1. 已安装 Docker EngineDocker Compose
    • 检查命令docker --versiondocker compose version
  2. 一台服务器(Linux 推荐 Ubuntu/CentOS,或本地开发环境)。
  3. 一个域名(可选,但生产环境强烈建议配置 HTTPS)。

🚀 第一步:创建项目目录

在服务器上创建一个专门用于存放 WordPress 文件的目录:

mkdir ~/my-wordpress
cd ~/my-wordpress

📝 第二步:创建 docker-compose.yml 文件

在该目录下创建一个名为 docker-compose.yml 的文件。

💡 注意:请务必修改示例中的 MYSQL_ROOT_PASSWORDWORDPRESS_DB_PASSWORD 为强密码!

version: '3.8'
services:
  # WordPress 服务
  wordpress:
    image: wordpress:latest
    container_name: wordpress_app
    restart: always
    ports:
      - "8080:80"  # 将主机的 8080 端口映射到容器的 80 端口
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: 你的数据库密码  # ⚠️ 请修改此处
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html  # 持久化网站文件
    depends_on:
      - db
  # MySQL 数据库服务
  db:
    image: mysql:8.0
    container_name: wordpress_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 你的根密码  # ⚠️ 请修改此处
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: 你的数据库密码  # ⚠️ 请修改此处
    volumes:
      - db_data:/var/lib/mysql  # 持久化数据库数据
# 定义卷,用于数据持久化
volumes:
  wordpress_data:
  db_data:

Docker怎么安装WordPress?docker部署wordpress详细步骤

关键配置说明:

  • ports: - "8080:80":表示通过访问 http://你的IP:8080 来访问网站,如果你希望直接用 http://你的IP 访问,可以改为 "80:80"(需确保主机 80 端口未被占用)。
  • volumes:这是 Docker 的核心优势,即使容器删除,数据(网站图片和数据库)依然保留在宿主机上。

▶️ 第三步:启动 WordPress

docker-compose.yml 所在目录下,运行以下命令启动服务:

docker compose up -d
  • up:启动服务
  • -d:后台运行(detached mode)

启动成功后,你会看到类似输出:

[+] Running 3/3
 ✔ Network my-wordpress_default  Created
 ✔ Container wordpress_db        Started
 ✔ Container wordpress_app       Started

🌐 第四步:通过浏览器安装 WordPress

  1. 打开浏览器,访问:http://你的服务器IP:8080
  2. 选择语言,点击“继续”。
  3. 填写站点标题、管理员用户名、密码和邮箱。
  4. 点击“安装 WordPress”。
  5. 登录后台,开始使用!

🔧 第五步:(可选)配置 Nginx 反向代理 + HTTPS(生产环境推荐)

直接暴露端口给公网不安全,建议使用 Nginx 作为反向代理,并配置 SSL 证书。

安装 Nginx 容器

在同一目录下创建 nginx.conf

server {
    listen 80;
    server_name yourdomain.com; # 替换为你的域名
    # 重定向 HTTP 到 HTTPS
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl http2;
    server_name

Docker怎么安装WordPress?docker部署wordpress详细步骤

yourdomain.com; # 替换为你的域名 ssl_certificate /etc/nginx/ssl/fullchain.pem; # 替换为你的证书路径 ssl_certificate_key /etc/nginx/ssl/privkey.pem; # 替换为你的私钥路径 location / { proxy_pass http://wordpress:80; 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; } }

更新 docker-compose.yml

添加 Nginx 服务,并移除 WordPress 的 ports 映射(因为现在由 Nginx 代理):

version: '3.8'
services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress_app
    restart: always
    # 移除 ports: - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: 你的数据库密码
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html
    depends_on:
      - db
  db:
    image: mysql:8.0
    container_name: wordpress_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 你的根密码
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: 你的数据库密码
    volumes:
      - db_data:/var/lib/mysql
  nginx:
    image: nginx:latest
    container_name: wordpress_nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./ssl:/etc/nginx/ssl  # 挂载证书目录
    depends_on:
      - wordpress
volumes:
  wordpress_data:
  db_data:

准备 SSL 证书

使用 Certbot 获取免费 SSL 证书,并将证书文件放入 ssl 目录:

# 示例:假设你已安装 certbot
certbot certonly --standalone -d yourdomain.com
# 然后将证书复制到项目目录
mkdir -p ssl
cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem ./ssl/
cp /etc/letsencrypt/live/yourdomain.com/privkey.pem ./ssl/

Docker怎么安装WordPress?docker部署wordpress详细步骤

重启服务

docker compose down
docker compose up -d

你可以通过 https://yourdomain.com 安全访问你的 WordPress 网站。


🛠️ 常用维护命令

操作 命令
查看日志 docker compose logs -f
停止服务 docker compose down
启动服务 docker compose up -d
更新 WordPress 镜像 docker compose pull docker compose up -d
进入 WordPress 容器 docker exec -it wordpress_app bash
进入数据库容器 docker exec -it wordpress_db bash

⚠️ 重要注意事项

  1. 数据备份

    • WordPress 文件存储在 wordpress_data 卷中。
    • 数据库存储在 db_data 卷中。
    • 定期备份这两个目录! 可以使用 tar 命令打包备份。
  2. 防火墙设置

    • 如果使用 Nginx 反向代理,只需开放 80443 端口。
    • 如果直接访问,需开放 8080(或 80)端口。
  3. 性能优化

    • 生产环境建议为 MySQL 配置专用内存限制。
    • 使用 Redis 作为对象缓存(需额外添加 Redis 服务)。
  4. 安全性

    • 不要使用默认密码。
    • 定期更新 Docker 镜像。
    • 启用 HTTPS。

通过以上步骤,你已经成功在 Docker 上部署了一个安全、可维护的 WordPress 网站!🎉

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/484057.html

(0)
服务器建立网站主机怎么操作?服务器租用多少钱一个月
上一篇 2026年7月12日 00:31
Python中iconify怎么用?python调用iconify图标库
下一篇 2026年7月12日 00:34

相关推荐

  • 天气预报怎么查询,本地实时天气预报精准查询

    现代Web开发中,实现无刷新获取气象数据已成为提升用户体验的关键环节,核心结论在于:利用Ajax技术调用专业的天气预报接口,能够实现数据的异步加载与精准展示,这不仅能大幅提升页面响应速度,还能为用户提供实时、精准的气象服务体验, 相比传统的同步请求方式,这种技术方案有效解决了页面阻塞问题,是构建现代化气象服务应……

    2026年3月28日
    8000
  • UCloud EDN有哪些优势?边缘分发节点EDN的使用场景有哪些

    UCloud边缘分发节点EDN通过全球分布式节点实现低延迟、高并发的内容加速,是解决跨地域访问慢、大流量冲击及动态内容分发痛点的最佳技术选型,在数字化转型的深水区,企业面临的网络挑战早已不是简单的“带宽不足”,而是“最后一公里”的体验断裂,传统的中心化CDN虽然成熟,但在面对2026年日益复杂的混合云架构和实时……

    2026年6月18日
    3600
  • ado数据库控件怎么用,ado控件使用方法详解

    ADO数据库控件作为基础控件体系中的核心组件,其本质是建立在OLE DB之上的高级数据库访问接口,通过封装复杂的COM接口,实现了数据库连接、命令执行与结果集处理的高效封装,是构建稳定、高性能数据驱动应用程序的基石,对于开发者而言,深入理解其内部机制与正确使用方法,直接决定了软件系统的数据吞吐量与长期运行的稳定……

    2026年3月28日
    10100
  • 快车道日本BGP VPS性价比如何,日本VPS哪家速度快?

    Kuai Che Dao推出的日本BGP线路VPS,凭借29.59美元半年付的低门槛、1GB内存与10Gbps大带宽配置,成为追求高性价比建站与轻量化业务部署的理想选择,日本BGP线路VPS怎么选:核心指标解析在选择日本VPS时,很多用户容易被花哨的营销术语带偏,日本机房的资源虽然丰富,但线路质量参差不齐,BG……

    2026年7月12日
    12600
  • 安卓壁纸app哪个好用?安卓壁纸app推荐排行榜

    使用CloudCampus APP进行现场验收是确保安卓壁纸app及相关网络设备高质量交付的关键环节,其核心结论在于:通过标准化的移动端验收流程,能够精准识别无线信号覆盖盲区、验证业务访问流畅度,并确保最终用户体验达到设计预期,这一过程不仅是对网络基础设施的物理检验,更是对安卓壁纸app等高带宽应用在实际场景中……

    2026年3月23日
    12000
  • 国外业务中台系统云通信怎么选,哪家服务商好?

    构建高效、稳定且具备全球化服务能力的通信架构,是出海企业实现业务增长的关键基石,通过搭建国外业务中台系统云通信架构,企业能够将分散的通信资源进行统一管控与调度,从而在降低运营成本的同时,大幅提升全球用户的触达体验,这一架构不仅是技术层面的整合,更是企业应对国际市场复杂环境、保障业务连续性的核心战略,全球化通信面……

    2026年2月27日
    15200
  • ansible playbook 切换工作目录_Ansible如何切换工作目录

    在Ansible自动化运维的实践场景中,控制任务执行的工作目录是确保脚本稳定运行的关键环节,Ansible Playbook 切换工作目录的核心结论在于:不应依赖系统默认的远程用户家目录,而应显式通过参数指定目标路径,这不仅能避免因路径偏差导致的文件找不到或权限错误,还能显著提升Playbook的可移植性与安全……

    2026年4月8日
    7500
  • 按流量带宽_按流量计费和按带宽计费有什么区别?哪种更省钱?

    按流量带宽_按流量计费和按带宽计费有什么区别? 核心在于计费逻辑与成本控制方式的根本差异:按带宽计费是“包干制”,适合流量平稳、长期运行的业务,成本可控但单价较高;按流量计费是“实用制”,适合流量波动大、突发性强的业务,成本灵活但存在不可控风险,选择哪种模式,直接决定了企业的IT成本结构与业务弹性, 核心定义与……

    2026年3月28日
    11300
  • Sharktech洛杉矶独立服务器$129/月配置如何?洛杉矶便宜独立服务器推荐

    Sharktech洛杉矶独立服务器凭借Dual E5-2678v3处理器、1TB NVMe存储及60Gbps免费高防,以$129/月的极致性价比,成为2026年搭建高并发业务与内容分发网络的首选方案,在服务器租赁市场日益内卷的当下,寻找一款既具备强劲算力又拥有顶级防御能力的独立服务器并非易事,Sharktech……

    2026年6月30日
    1300
  • aspnet微网站源码怎么用?ASP.NET Core部署CAE教程

    ASP.NET Core应用部署至CAE是实现微网站源码高效运维与弹性伸缩的最佳实践方案,该方案通过全托管容器环境解决了传统部署中资源利用率低、扩容响应慢的核心痛点,将成熟的aspnet 微网站源码迁移至CAE平台,不仅能获得开箱即用的高可用架构,还能显著降低基础设施的运维成本,使开发团队专注于业务逻辑创新,这……

    2026年3月27日
    9500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注