本教程将向您展示如何使用 Docker Compose 在 Docker 容器中运行 WordPress 安装。

WordPress是世界上最流行的 CMS(内容管理系统),这使其成为构建新站点时最重要的考虑因素。它建立在带有 PHP 处理的 MySQL 数据库上。

设置本地 WordPress 安装涉及多个步骤,并且可能是一个耗时的过程。通常,您需要设置本地Web 服务器,配置服务器以执行 PHP 代码,并设置 MySQL 数据库。然而,设置本地 WordPress 环境的最简单方法是将容器化与 Docker 结合使用。

相关:一文看懂什么是 Docker 容器

如果您刚开始使用 Docker 并且还没有安装 Docker,我建议您查看我们的教程《在 Ubuntu 上安装 Docker 分步图文指南》。

1. 安装 Docker Compose

当广泛使用 Docker 时,几个不同容器的管理很快变得繁琐。Docker Compose 是一个工具,您可以使用它轻松定义和启动 Docker 中的多容器应用程序。

使用 Compose,您可以在单个 YAML 文件中定义所有服务,并且使用单个命令,可以启动或拆除所有服务。

在本教程中,我们将使用 Docker Compose 在隔离的容器化环境中并排运行两个容器(WordPress 和 MySQL)。

现在让我向您展示如何安装最新版本的 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

然后将可执行权限应用于二进制文件:

最后可以通过检查版本来验证安装是否成功:

linuxmi@linuxmi:~/www.linuxmi.com$ docker-compose --version

显示

更多关于Docker Compose的内容可以参考官方文档

2. 准备目录

您需要创建一个名为wordpressunder的新目录/srv来存放 WordPress 数据。这样我们就实现了一定的数据持久化。

3. 创建 YAML 文件

在 Docker Compose 领域中,运行容器所需的所有资源都必须在名为 .yaml 的 YAML 文件中定义docker-compose.yaml。然后 Docker Compose 将读取此类文件并与 Docker 守护程序通信以创建、配置或销毁定义的资源。

在我们的例子中,该 docker-compose.yaml 文件将包含我们的 dockerized WordPress 设置的服务定义。此外,Docker Compose 允许我们将这些服务与共享网络和卷链接在一起。

因此,让我们从使用Vim编辑器在/srv/wordpress目录中创建一个新文件docker-compose.yaml开始 。使用如下内容来填充它:

version: '3'
services:
  mysql:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress_user
      MYSQL_PASSWORD: wordpress_password
    volumes:
      - mysql_data:/var/lib/mysql
  wordpress:
    image: wordpress:latest
    depends_on:
      - mysql
    ports:
      - 8080:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: wordpress_user
      WORDPRESS_DB_PASSWORD: wordpress_password
    volumes:
      - ./wp-content:/var/www/html/wp-content
volumes:
  mysql_data:

这里稍微解释一下:

  • 我们定义了两个自动相互链接的服务mysqlwordpress
  • 他们使用 Docker 镜像,这将决定使用哪个版本的 MySQL 和 WordPress。在这种情况下,他们的最新版本。
  • MySQL环境:WordPress 将使用这些环境变量连接到 MySQL 容器。
  • WordPress环境:要运行 WordPress 容器,您应该设置数据库连接详细信息。
  • WordPress 映像基于 Apache,它通过 derfault在端口 上运行80。将默认 Apache 端口映射到8080 本地计算机的端口。
  • mysql_data:流入这个数据库的数据将被持久化到一个命名卷mysql_data,这样即使你删除了容器,数据仍然存在于你的机器上,并且可以再次安装在新的容器中。

另外,下面的volumes 参数 wordpress 是告诉Dockerwp-content 在本地文件系统中显示 目录。现在,我们为 WordPress 站点的某些部分(例如wp-content目录)提供了持久存储。在wp-content 包含所有用户提供的内容。基本上,您可以上传到网站的任何内容都会在此处结束。

但是,只要您同时拥有数据库和 wp-content 文件夹,您就可以随时恢复您的站点,即使其他所有内容都丢失了。

4. 使用 Docker Compose 运行 WordPress

现在您已准备好运行将构建本地环境的 Docker 命令。确保您仍在wordpress目录中。运行以下命令:

当您密切关注本地文件系统时,您会看到在拉入 Docker 镜像后,/srv/wordpress/wp-content将创建文件夹,并填充文件和文件夹。

OK,现在带有 MySQL 容器和 WordPress 容器的 WordPress 安装已成功。

5. 访问您的 WordPress 安装

最后,在我们的容器运行的情况下,我们可以通过 WordPress Web 界面完成安装。在 Web 浏览器中,导航到http://localhost:8080http://your_ip_address:8080

您可能需要使用 ifconfig 命令找出您的 IP 地址。

您将看到语言选择页面。选择您的语言,然后单击继续。

在下一个屏幕中,填写必要的信息并单击安装 WordPress

最后,当出现提示时,单击登录

然后您将看到标准的 WordPress 登录屏幕。成功通过身份验证后,您就可以开始使用 WordPress。

额外的 Docker Compose 选项

首先,确保您在/srv/wordpress目录中。

要查看Docker 应用程序的状态,请执行以下命令:

linuxmi@linuxmi:/srv/wordpress$ sudo docker-compose ps

您可以使用以下命令停止所有正在运行的容器:

linuxmi@linuxmi/srv/wordpress$ sudo docker-compose start

下面显示的命令将停止并删除容器和所有网络:

linuxmi@linuxmi/srv/wordpress$ sudo docker-compose down

结论

我们向您介绍了 Docker Compose 背后的概念,您现在应该能够定义甚至是简单的多容器应用程序。

在本教程中,您使用 Docker Compose 安装了带有 Docker 的 WordPress。您现在已经启动并运行了 WordPress。

我们希望您喜欢这篇关于使用 Docker 安装 WordPress的指南文章。

发表评论