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

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

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

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

📋 前置条件

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

🚀 第一步:创建项目目录

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

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

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

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

💡 注意:请务必修改示例中的 MYSQL_ROOT_PASSWORD 和 WORDPRESS_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 反向代理,只需开放 80 和 443 端口。
    • 如果直接访问,需开放 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

相关推荐

  • 国外云好的服务器榜有哪些,怎么选最稳?

    全球云服务器市场呈现出高度分层与专业化竞争的态势,核心结论在于:选择最佳服务器并非单纯追求硬件参数,而是基于业务场景、网络质量与运维成本的平衡,对于企业级应用与高并发业务,AWS、Google Cloud及Azure凭借其成熟的技术生态占据第一梯队;而对于开发者、中小企业及追求极致性价比的用户,DigitalO……

    2026年2月26日
    13600
  • alphago算法原理是什么,alphago算法有哪些核心技术

    AlphaGo算法的核心在于其突破了传统人工智能穷举法的局限,通过“价值网络”与“策略网络”的深度学习组合,结合蒙特卡洛树搜索(MCTS),实现了在拥有巨大搜索空间的围棋领域对人类顶尖棋手的超越,这不仅仅是算力的胜利,更是算法架构在解决非线性、不完全信息博弈问题上的范式革命,它证明了机器可以通过自我学习掌握高度……

    2026年3月23日
    13000
  • 监控摄像头怎么连接电视机上,监控画面怎么投屏电视?

    将监控摄像头连接到电视机上,主要有三种成熟且高效的方案:通过HDMI线直连、通过网络(Wi-Fi/网线)投屏连接、以及通过硬盘录像机(NVR/DVR)中转连接,这三种方式分别适用于不同的设备环境和用户需求,其中HDMI连接画质最稳定无延迟,网络连接最灵活适合无线摄像头,而录像机连接则适合多路监控系统的统一管理……

    2026年2月20日
    64500
  • linux如何开启ftp服务?linux搭建ftp服务器详细教程

    在Linux系统中搭建FTP服务,首选vsftpd或ProFTPD,通过配置虚拟用户与SSL加密,可兼顾传输效率与数据安全,满足企业级文件共享需求,在数字化办公日益普及的今天,文件传输协议(FTP)依然是许多传统业务场景中的基石,尽管HTTP/2和SFTP逐渐崛起,但基于标准FTP的服务在内部局域网的大文件分发……

    2026年7月5日
    6400
  • 100T硬盘服务器到底多少钱一台?,报价多少

    一台100TB硬盘服务器的市场报价通常在5万到25万元人民币之间,具体取决于硬盘类型、配置层级以及服务商资质,这个跨度看似很大,但选型背后的逻辑其实非常清晰,本文从硬件成本、带宽服务、品牌合规三个维度拆解定价逻辑,帮你判断这笔预算花在哪最值,影响100TB存储服务器价格的核心因素硬盘类型与数量100TB存储容量……

    2026年8月12日
    1200
  • 服务器版pe系统hp云审计AOM操作列表有哪些?,怎么用?

    云审计服务(CTS)支持的AOM操作列表涵盖了应用运维管理中的关键操作,包括创建、删除、修改应用、配置告警规则等,在服务器版PE系统(如HP服务器)环境中,通过审计日志可追溯所有操作,确保安全合规,服务器版pe系统hp 云审计服务操作列表全解析云审计服务(CTS)与AOM(应用运维管理)的集成,是运维合规的核心……

    2026年8月2日
    300
  • linux系统如何查看硬盘?linux检测硬盘命令

    在 Linux 系统中发现、识别和管理硬盘,通常分为以下几个步骤:查看现有硬盘、确认新硬盘是否被系统识别、以及格式化并挂载使用,以下是详细的操作指南:第一步:查看现有硬盘和分区你可以使用以下命令来查看系统中已识别的块设备(硬盘、SSD、USB 等):lsblk(推荐,最直观)显示所有块设备的层级关系,包括硬盘……

    2026年7月12日
    12200
  • asp服务器环境怎么搭建,ASP报告生成配置教程

    构建稳定高效的ASP服务器环境是企业遗留系统与现代业务融合的关键基石,核心结论在于:一个优质的ASP运行环境并非简单的软件堆砌,而是基于Windows Server系统架构、IIS组件配置、权限管控及安全策略的深度优化组合,通过标准化的部署流程与精细化的参数调整,能够显著提升动态页面的响应速度,消除运行时错误……

    2026年4月6日
    8700
  • linux joomla怎么安装?joomla安装教程

    在Linux环境下安装Joomla最稳妥的方式是通过LAMP或LNMP环境部署,推荐使用宝塔面板或命令行配合Composer进行安装,前者适合新手快速建站,后者适合开发者追求高性能与安全性,Joomla作为全球领先的开源内容管理系统,凭借其强大的扩展性和灵活性,在政府、教育及企业官网领域占据重要地位,许多用户在……

    2026年7月8日
    6200
  • android查询网络状态怎么实现?Android网络状态检测方法详解

    在Android应用开发过程中,网络状态判断是保障用户体验的核心环节,精准、高效地查询网络状态直接决定了应用在弱网或无网环境下的健壮性,核心结论在于:开发者不应仅仅依赖isConnected()这一布尔值,而应构建一套包含网络类型、计费状态及实时连通性的多维检测机制,并优先使用ConnectivityManag……

    2026年3月25日
    11400

发表回复

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