告别繁琐的配置,用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_password和your_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
无论使用哪种方法,完成部署后的配置步骤都是一样的:
-
访问WordPress :打开浏览器,输入
http://localhost:8000(如果你更改了端口,请使用你设置的端口) -
选择语言:选择网站的语言,然后点击"继续"
-
填写网站信息:输入网站标题、用户名、密码和邮箱地址
-
完成安装:点击"安装WordPress"按钮,等待安装完成
-
登录后台 :安装完成后,访问
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证书加密数据传输,以确保网站安全。