目录
- 一、使用 Docker 部署 WordPress + MySQL
- 1. 命令式安装
- 创建网络
- 启动 MySQL
- 启动 WordPress
- 2. 使用 Docker Compose
- 创建配置文件
- 写入内容
- 启动服务
- 3. 为什么必须写volumes和networks
- 4. 总结
一、使用 Docker 部署 WordPress + MySQL
1. 命令式安装
创建网络
docker network create blog
启动 MySQL
docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=wordpress \
-v mysql-data:/var/lib/mysql \
-v /app/myconf:/etc/mysql/conf.d \
--restart always --name mysql \
--network blog \
mysql:8.0
启动 WordPress
docker run -d -p 8080:80 \
-e WORDPRESS_DB_HOST=mysql \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=123456 \
-e WORDPRESS_DB_NAME=wordpress \
-v wordpress:/var/www/html \
--restart always --name wordpress-app \
--network blog \
wordpress:latest
打开浏览器访问:
http://localhost:8080
✅ 你就能看到 WordPress 安装界面啦。
2. 使用 Docker Compose
创建配置文件
vim compose.yaml
写入内容
name: myblog
services:
mysql:
image: mysql:8.0
ports:
- "3306:3306" # 如果宿主机已占用 3306,可以改成 3307:3306
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
volumes:
- mysql-data:/var/lib/mysql
- /app/myconf:/etc/mysql/conf.d
restart: always
networks:
- blog
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
restart: always
networks:
- blog
depends_on:
- mysql
volumes:
mysql-data: # 存放 MySQL 数据
wordpress: # 存放 WordPress 网站文件
networks:
blog:
启动服务
docker compose -f compose.yaml up -d
3. 为什么必须写volumes和networks
1)需要持久化数据 → 写 volumes:
- 数据库数据、WordPress 上传的文件、配置文件,都必须持久化保存。
- 如果不写,会报错:
volume not found
。
volumes:
mysql-data:
wordpress:
2)需要容器互通 → 写 networks:
- MySQL 和 WordPress 必须在同一网络中才能通信。
- 如果不写,会报错:
network not found
。
networks:
blog:
4. 总结
- 命令式安装 → 适合测试,简单粗暴。
- Docker Compose → 适合长期部署,配置集中、管理方便。
- 在 MySQL + WordPress 场景下,必须写顶层的
volumes:
和networks:
。 - 如果只是单个容器(如 Nginx 静态站点),不依赖其他服务,就可以省略。