前置条件

  1. 已安装 Docker 和 Docker Compose。可以在 Docker 官方网站上找到 DockerDocker Compose 的安装指南。

步骤

步骤 1:创建一个名为 docker-compose.yml 的文件,然后添加以下内容:

version: '3.3'
 
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
 
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

这个文件定义了两个服务,WordPress 和 MySQL。它们在 Docker 中运行为单独的容器。WordPress 容器将连接到 MySQL 容器。

这部分的代码定义了一个 Docker 卷 db_data。卷是 Docker 提供的一种数据持久化的解决方案,你可以使用它来存储和共享容器的数据。

在这个 docker-compose.yml 文件中,db_data 卷被挂载到 MySQL 容器的 /var/lib/mysql 目录。这意味着 MySQL 容器的数据(例如数据库文件)将被存储在 db_data 卷中。即使你删除并重新创建 MySQL 容器,只要你还在使用同一个 db_data 卷,数据就不会丢失。

db_data: {} 的语法表示创建一个新的命名卷。这里的 {} 是空的,这意味着 Docker 将使用默认的配置来创建这个卷。如果你想要对卷进行配置,例如指定卷的驱动器或者设定其他选项,你可以在 {} 中添加这些选项。

在这个例子中,我们不需要对 db_data 卷进行任何特殊配置,所以你可以保留 db_data: {} 的语法。

如果你想知道更多关于 Docker 卷的信息,可以参考 Docker 的官方文档

步骤 2:打开终端,导航到包含 docker-compose.yml 文件的目录,然后运行以下命令:

docker-compose up -d

这个命令将下载并运行 WordPress 和 MySQL 的 Docker 镜像。参数 -d 让容器在后台运行。

步骤 3:打开浏览器并访问 http://localhost:8000 来查看你的 WordPress 网站。你应该会看到 WordPress 的安装向导。

常见问题

问题 1:如果你看到 “Error establishing a database connection” 错误,那可能是因为以下原因:

  • 数据库服务器未运行:运行 docker ps 命令来查看你的容器是否正在运行。你也可以通过运行 docker logs <container_id> 命令来查看 MySQL 容器的日志。
  • 错误的数据库凭据:检查你的 docker-compose.yml 文件中的 WORDPRESS_DB_USERWORDPRESS_DB_PASSWORDWORDPRESS_DB_NAMEWORDPRESS_DB_HOST 环境变量是否与 MySQL 容器的设置相匹配。
  • 网络问题:你的 WordPress 和 MySQL 容器可能无法互相通信。在 Docker Compose 中,你应该使用服务名称(在这个例子中是 db)作为主机名。

如果你要停止你的 Docker 容器,可以运行 docker-compose down 命令。

这就是在 Docker 中一键安装 WordPress 和 MySQL 的步骤。希望对你有所帮助!