一、准备工作
在开始之前,请确保您的系统已经安装了Docker和Docker Compose。如果尚未安装,可以参考以下命令进行安装:
# 安装Docker
curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
二、创建Docker Compose文件
我们将使用Docker Compose来管理WordPress和MySQL容器。创建一个名为docker-compose.yml
的文件:
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wordpress_network
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: wordpress
WORDPRESS_DB_NAME: wordpress
networks:
- wordpress_network
volumes:
db_data:
wordpress_data:
networks:
wordpress_network:
三、启动WordPress容器
在包含docker-compose.yml
文件的目录中运行以下命令:
docker-compose up -d
这个命令会:
- 下载MySQL和WordPress镜像(如果本地没有)
- 创建两个容器并启动它们
- 设置网络连接使两个容器可以通信
四、配置WordPress
- 打开浏览器访问
http://localhost:8000
(如果您修改了端口号,请使用相应的端口) - 按照WordPress安装向导完成安装:
- 选择语言
- 设置站点标题
- 创建管理员账户
- 完成安装
五、数据库配置详解
在我们的Docker Compose文件中,数据库配置部分有几个关键参数:
environment:
MYSQL_ROOT_PASSWORD: your_root_password # MySQL root用户密码
MYSQL_DATABASE: wordpress # 自动创建的数据库名
MYSQL_USER: wordpress # 自动创建的数据库用户
MYSQL_PASSWORD: wordpress # 数据库用户密码
WordPress容器通过以下环境变量连接到数据库:
environment:
WORDPRESS_DB_HOST: db:3306 # 数据库服务名和端口
WORDPRESS_DB_USER: wordpress # 数据库用户名
WORDPRESS_DB_PASSWORD: wordpress # 数据库密码
WORDPRESS_DB_NAME: wordpress # 数据库名称
六、常见问题解决
端口冲突:如果8000端口已被占用,可以修改
docker-compose.yml
中的端口映射,例如改为"8080:80"
数据库连接问题:
- 确保
WORDPRESS_DB_HOST
的值是db:3306
(使用服务名而非IP) - 检查所有密码是否匹配
- 权限问题:
sudo chown -R $USER:$USER .
sudo chmod -R 755 .
- 查看日志:
docker-compose logs wordpress
docker-compose logs db
七、管理容器
- 停止服务:
docker-compose down
- 启动服务:
docker-compose up -d
- 查看运行中的容器:
docker ps
- 进入WordPress容器:
docker exec -it [container_id] bash
八、备份与恢复
- 备份数据库:
docker exec [db_container_id] sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > all-databases.sql
- 备份WordPress文件:
docker cp [wordpress_container_id]:/var/www/html ./wordpress-backup
- 恢复:
- 数据库:将备份文件复制到容器并导入
- 文件:将备份复制回容器
九、安全建议
- 修改默认的数据库密码和用户名
- 考虑添加SSL证书
- 定期更新容器镜像:
docker-compose pull && docker-compose up -d
- 限制数据库的外部访问
通过以上步骤,您已经成功使用Docker部署了WordPress并配置了数据库。这种部署方式的优势在于环境隔离、易于迁移和版本控制,非常适合开发和测试环境使用。