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

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐