一、使用 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

官方文档:Compose File Reference

在这里插入图片描述

创建配置文件

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 静态站点),不依赖其他服务,就可以省略。

posted on 2025-09-20 14:23  lxjshuju  阅读(17)  评论(0)    收藏  举报