使用Docker轻松搭建WordPress博客:完整指南

告别繁琐的配置,用Docker在10分钟内部署你的个人网站

在传统的网站部署中,我们通常需要分别安装和配置Web服务器、PHP环境、MySQL数据库,然后才能安装WordPress。这个过程耗时且容易出错。而使用Docker,我们可以快速、简单地完成WordPress的部署。

为什么选择Docker部署WordPress?

WordPress是使用PHP语言开发的博客平台,也是目前最流行的内容管理系统(CMS)之一。通过Docker部署WordPress,你可以享受到以下好处:

  • 环境隔离:WordPress及其依赖项被封装在独立的容器中,不会影响主机环境

  • 一致性:无论在开发、测试还是生产环境,都能保证运行结果一致

  • 快速部署:只需几条命令就能完成全套服务的部署

  • 易于维护:更新、回滚和迁移都变得非常简单

下面介绍两种主流的部署方法,你可以根据自己的需求选择。

方法一:使用Docker Compose一键部署(推荐)

这是最简单快捷的方法,特别适合新手用户。Docker Compose允许我们通过一个配置文件定义和管理多个容器。

1. 准备工作

确保你的系统已经安装了Docker和Docker Compose。你可以通过以下命令检查:

bash

复制代码
docker --version
docker-compose --version

2. 创建docker-compose.yml文件

创建一个项目目录,并在其中创建docker-compose.yml文件:

bash

复制代码
mkdir wordpress-app && cd wordpress-app
vim docker-compose.yml

将以下内容复制到文件中:

yaml

复制代码
version: '3.8'

services:
  # 数据库服务
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_mysql_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: your_mysql_password

  # WordPress服务
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: your_mysql_password
      WORDPRESS_DB_NAME: wordpress

volumes:
  db_data:
  wordpress_data:

注意 :请将上述密码(如your_mysql_root_passwordyour_mysql_password)替换为你自己的强密码。

3. 启动服务

docker-compose.yml文件所在目录执行以下命令:

bash

复制代码
docker-compose up -d

这个命令会下载所需的镜像并在后台启动服务。如果一切正常,你将看到类似输出:

text

复制代码
[+] Running 2/2
 ⠿ Container wordpress-app-db-1        Started
 ⠿ Container wordpress-app-wordpress-1 Started

4. 验证服务

使用以下命令查看容器状态:

bash

复制代码
docker-compose ps

如果看到两个容器的状态都是"Up",说明部署成功。

方法二:手动部署WordPress容器

如果你希望更深入了解Docker容器的工作原理,或者需要更灵活的配置,可以选择手动部署。

1. 拉取镜像

首先,我们需要拉取WordPress和MySQL的Docker镜像:

bash

复制代码
docker pull wordpress:latest
docker pull mysql:5.7

2. 创建专用网络

为了让WordPress容器和MySQL容器能够通信,我们创建一个专用网络:

bash

复制代码
docker network create wordpress-network

3. 启动MySQL容器

先启动MySQL容器:

bash

复制代码
docker run -d \
  --name wordpress-db \
  --network wordpress-network \
  -e MYSQL_ROOT_PASSWORD=your_mysql_root_password \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=wordpress \
  -e MYSQL_PASSWORD=your_mysql_password \
  -v db_data:/var/lib/mysql \
  --restart always \
  mysql:5.7

4. 启动WordPress容器

等MySQL容器启动就绪后(约30秒),启动WordPress容器:

bash

复制代码
docker run -d \
  --name wordpress-site \
  --network wordpress-network \
  -p 8000:80 \
  -e WORDPRESS_DB_HOST=wordpress-db:3306 \
  -e WORDPRESS_DB_USER=wordpress \
  -e WORDPRESS_DB_PASSWORD=your_mysql_password \
  -e WORDPRESS_DB_NAME=wordpress \
  -v wordpress_data:/var/www/html \
  --restart always \
  wordpress:latest

配置和初始化WordPress

无论使用哪种方法,完成部署后的配置步骤都是一样的:

  1. 访问WordPress :打开浏览器,输入http://localhost:8000(如果你更改了端口,请使用你设置的端口)

  2. 选择语言:选择网站的语言,然后点击"继续"

  3. 填写网站信息:输入网站标题、用户名、密码和邮箱地址

  4. 完成安装:点击"安装WordPress"按钮,等待安装完成

  5. 登录后台 :安装完成后,访问http://localhost:8000/wp-admin,使用你设置的用户名和密码登录

常见问题及解决方案

1. 数据库连接错误

如果WordPress无法连接数据库,请检查:

  • 环境变量是否正确设置

  • MySQL容器是否已正常启动

  • 网络配置是否正确

你可以使用以下命令查看MySQL容器日志:

bash

复制代码
docker logs wordpress-db

2. 端口冲突

如果8000端口已被占用,可以更改映射端口,例如使用8080端口:

bash

复制代码
# 在docker-compose.yml中更改
ports:
  - "8080:80"

# 或者在手动部署时更改
-p 8080:80

3. 数据持久化

为了确保数据安全,我们在配置中已经使用了Docker卷(volumes)来持久化数据。这样即使删除容器,数据库和WordPress上传的文件也不会丢失。

你可以使用以下命令查看卷列表:

bash

复制代码
docker volume ls

常用管理命令

Docker Compose管理

bash

复制代码
# 停止服务
docker-compose stop

# 停止并删除服务(保留数据卷)
docker-compose down

# 停止并删除服务(包含数据卷)
docker-compose down -v

# 查看服务日志
docker-compose logs

# 重新启动服务
docker-compose restart

手动部署管理

bash

复制代码
# 查看运行中的容器
docker ps

# 停止容器
docker stop wordpress-site wordpress-db

# 启动容器
docker start wordpress-db wordpress-site

# 删除容器
docker rm wordpress-site wordpress-db

总结

使用Docker部署WordPress不仅简化了安装过程,还提供了更好的隔离性和可维护性。无论你是选择使用Docker Compose一键部署,还是手动部署单个容器,都能在几分钟内搭建好完整的WordPress运行环境。

现在,你可以开始定制你的WordPress网站了------安装主题、添加插件、创建内容,享受拥有个人网站的乐趣!

温馨提示:如果你打算将网站部署到公网,请务必修改默认密码,并考虑使用SSL证书加密数据传输,以确保网站安全。

相关推荐
好记忆不如烂笔头abc3 小时前
ob恢复租户报错result: -4184(Server out of disk space)
运维·服务器
孙同学要努力3 小时前
《Linux篇》进程/虚拟地址空间
linux·运维·服务器
lxw18449125143 小时前
docker 核心技术浅析
运维·docker·容器
梁正雄4 小时前
14、Docker swarm-1-理论
运维·docker·容器
惊讶的猫4 小时前
docker常见命令:从拉取到推送社区仓库
docker
Will_Ye4 小时前
在Ubuntu中使用Docker打包程序(Conda, pip)
ubuntu·docker·conda
轩辕Ruins4 小时前
docker compose配置容器只允许指定的外部IP访问
docker
❀͜͡傀儡师4 小时前
docker离线镜像文件选择导入脚本
运维·docker·容器
安卓开发者4 小时前
Docker 安装和配置 Elasticsearch 完整指南
elasticsearch·docker·容器