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://test.idctop.com/article/484057.html

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

相关推荐

  • edgeNAT香港VPS主机测评结果如何,值得买吗?

    edgeNAT香港VPS主机在配置与网络表现上属于中上游水平,尤其适合对国内延迟敏感的轻量业务、跨境建站或游戏加速场景,性价比在同类香港VPS主机中较为突出,硬件配置与IO性能:edgeNAT香港VPS主机基础情况edgeNAT香港VPS采用KVM虚拟化,提供多种CPU型号,根据常见套餐,CPU核心数从1核起……

    2026年7月14日
    500
  • Android显示图片怎么操作?Android图片加载教程

    在Android应用开发中,图片显示不仅是基础功能,更是影响用户体验(UX)和应用性能的核心环节,高效、稳定、低内存占用的图片加载方案,是保证应用流畅度与稳定性的决定性因素,开发者在处理图片显示时,必须优先解决内存溢出(OOM)问题,并构建高效的缓存机制,而非仅仅关注图片的呈现,核心结论在于:一个优秀的图片显示……

    2026年3月28日
    8300
  • 1h2G服务器究竟能支持多少人访问,1核2G配置够用吗?

    一台1H2G服务器能支撑的访问量并非固定数值,在优化得当、静态资源分离的情况下可承受每日数千次点击;若运行高消耗动态程序,则可能只能支撑数十人同时在线,核心瓶颈通常在于内存和数据库查询效率,而非CPU主频,下面结合具体业务场景、优化策略与运维实测数据,拆解这台“小机器”的真实能力边界,影响承载力的三个决定性因素……

    2026年8月14日
    1200
  • 如何用腾讯云轻量应用服务器搭建WordPress博客?腾讯云轻量应用服务器搭建WordPress教程

    使用腾讯云轻量应用服务器Lighthouse搭建WordPress博客,核心在于利用其“应用镜像”功能实现一键部署,相比传统手动配置环境,它能将建站时间从数小时缩短至几分钟,且具备极高的性价比和稳定性,对于许多想要建立个人品牌或记录生活的创作者来说,技术门槛往往是最大的拦路虎,过去,搭建一个网站需要熟悉Linu……

    2026年6月22日
    2400
  • UCloud优刻得U大使CPS怎么操作?推荐系统佣金结算规则

    UCloud优刻得U大使CPS推荐系统通过专属链接追踪转化,帮助推广者以零成本获取佣金,适合拥有技术社群或内容创作能力的个人与企业快速变现,在云计算市场竞争日益激烈的2026年,寻找稳定且透明的变现渠道成为许多技术博主和开发者社区运营者的刚需,UCloud优刻得推出的U大使CPS(Cost Per Sale)推……

    2026年6月19日
    4800
  • 按钮可用怎么办?按钮可用怎么设置

    按钮的可用性直接决定了用户的操作效率与转化率,是界面设计中最关键的交互触点,一个优秀的按钮设计,必须在视觉上具备极高的辨识度,在交互上提供清晰的反馈,在逻辑上符合用户的直觉预期,从而消除用户在操作过程中的任何疑虑与障碍,视觉呈现:构建清晰的点击诱导视觉设计是按钮可用性的第一道防线,其核心目标是让用户在扫视页面的……

    2026年3月28日
    10100
  • HostSlick荷兰分销主机性价比高吗,荷兰虚拟主机哪个好?

    HostSlick 荷兰分销虚拟主机:超高性价比方案推荐产品核心参数概览这款由 HostSlick 提供的荷兰分销虚拟主机,以其极具竞争力的价格和宽松的资源限制,成为了市场上的热门选择,以下是其核心配置详情:价格:€12 / 半年(折合每月仅需约 €2)存储空间:100GB流量限制:不限流量域名数量:不限域名子……

    2026年7月13日
    10900
  • 主机记录多个值怎么看?主机指纹历史变动记录怎么查

    主机记录多个记录值通常通过添加多条相同主机名的不同记录实现,而查看历史变动需依赖DNS服务商提供的审计日志或版本控制功能,这是保障域名解析稳定与安全的核心运维手段,在数字化运维的日常场景中,我们常常会遇到这样的困惑:为什么同一个域名在不同时间解析到了不同的IP?或者,当线上业务出现异常时,如何快速定位是哪一次D……

    行业资讯 2026年6月11日
    2800
  • 安徽制作网站需要哪些流程?安徽管局要求有哪些规定

    在安徽地区进行网站建设与上线运营,合规性是决定网站能否长期稳定运行的首要前提,企业或个人在策划{安徽制作网站_安徽管局要求}相关事宜时,必须将ICP备案及公安联网备案作为核心考量指标,安徽省通信管理局针对互联网信息服务实行严格的属地化管理,这不仅是对国家法律法规的执行,更是规范安徽互联网生态的重要手段,核心结论……

    2026年3月16日
    13100
  • APP压力测试目的是什么?如何提升系统稳定性

    App压力测试的核心目的在于验证系统在极端负载下的稳定性、发现性能瓶颈并评估资源消耗,确保应用在高并发场景下不崩溃、不卡顿,从而保障用户体验和业务连续性,在移动互联网竞争日益激烈的今天,用户对于App的响应速度极其敏感,一次加载超时或频繁闪退,足以让潜在用户流失,压力测试并非简单的“跑分”,而是一场针对系统极限……

    2026年6月4日
    4300

发表回复

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