本教程将向您展示如何使用 Docker Compose 在 Docker 容器中运行 WordPress 安装。
WordPress是世界上最流行的 CMS(内容管理系统),这使其成为构建新站点时最重要的考虑因素。它建立在带有 PHP 处理的 MySQL 数据库上。
设置本地 WordPress 安装涉及多个步骤,并且可能是一个耗时的过程。通常,您需要设置本地Web 服务器,配置服务器以执行 PHP 代码,并设置 MySQL 数据库。然而,设置本地 WordPress 环境的最简单方法是将容器化与 Docker 结合使用。
相关:一文看懂什么是 Docker 容器  https://www.linuxmi.com/docker-container.html
如果您刚开始使用 Docker 并且还没有安装 Docker,我建议您查看我们的教程《在 Ubuntu 上安装 Docker 分步图文指南 https://www.linuxmi.com/ubuntu-docker-zhinan.html 》。

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$ sudo chmod +x /usr/local/bin/docker-compose
最后可以通过检查版本来验证安装是否成功:
linuxmi@linuxmi:~/www.linuxmi.com$ docker-compose --version
显示
Docker Compose version v2.2.2
更多关于Docker Compose的内容可以参考官方文档。

2. 准备目录

您需要创建一个名为wordpressunder的新目录/srv来存放 WordPress 数据。这样我们就实现了一定的数据持久化。
linuxmi@linuxmi:~/www.linuxmi.com$ sudo mkdir -p /srv/wordpress[sudo] linuxmi 的密码:linuxmi@linuxmi:~/www.linuxmi.com$ cd /srv/wordpress/
大家知道,Docker 容器中的数据不是持久的。这意味着如果您停止容器并再次运行它,您将丢失所有数据,里面将不再有任何数据。当然,这可以通过添加 Docker 数据卷来避免,您将在本教程后面看到。

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-contentvolumes:  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目录中。运行以下命令:
linuxmi@linuxmi:~/www.linuxmi.com$ sudo docker-compose up -d
该命令将开始运行脚本,当 Docker 拉入 MySQL 和 WordPress 图像时,您应该会在终端中看到各种“正在下载”和“正在等待”消息。4-5分钟即可。
当您密切关注本地文件系统时,您会看到在拉入 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 psNAME                    COMMAND                  SERVICE             STATUS              PORTSwordpress-mysql-1       "docker-entrypoint.s…"   mysql               running             33060/tcpwordpress-wordpress-1   "docker-entrypoint.s…"   wordpress           running             0.0.0.0:8080->80/tcp, :::8080->80/tcp
您可以使用以下命令停止所有正在运行的容器:
linuxmi@linuxmi/srv/wordpress$ sudo docker-compose stop
启动现有容器中开始与 docker-compose up
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的指南文章。
如有疑问,请留下您的意见。