在 WordPress 中使用 Docker 容器
已发表: 2022-06-30运行 WordPress 网站可能涉及使用大量配置和软件依赖项来生产高质量的产品。 您可能想知道是否有一种更简单的方法可以在本地开发此类项目,而无需在自己的机器上运行这么多不同的软件包。
幸运的是,Docker 是一种产品,它为更快、更流畅的 WordPress 设置提供了解决方案。 Docker 不仅仅是一个虚拟机,它还提供了用于开发 WordPress 网站以及其他应用程序和软件的容器。 Docker 还可以帮助您轻松准备应用程序以将其运送到其他平台,从而简化您的工作流程。
在本文中,我们将了解容器到底是什么以及它们如何影响开发。 然后我们将介绍如何为本地 WordPress 开发设置容器,并为生产做好准备。 让我们开始吧!
什么是容器?
安装 WordPress 不是在公园里散步,开发一个 WordPress 网站可能会让人不知所措。 在 Web 开发方面,容器是打包代码及其所有依赖项的标准化软件单元,因此部署 WordPress 变得更加容易。 多个容器还可以从一个环境到另一个环境可靠地执行此操作。
虽然 Docker 是一种虚拟化,但它不同于常规的虚拟机 (VM)。 虚拟机占用了宝贵的空间,将主机操作系统添加到每个应用程序的用户空间,容器化开发在所有容器之间共享。
Docker 的真正美妙之处在于,无论您使用哪种操作系统,它都能以相同的方式运行。 此外,您可以在一台机器上运行许多 Docker 容器,否则这些容器将与相同数量的 VM 相冲突。 您也不必担心本地开发有时会带来的任何错误。 这也被称为应用程序开发中的“但它在我的机器上工作”难题。
开始使用 Docker
Docker 有许多不同的产品,它们结合起来创建了一套功能强大的开发者工具。 您可以通过免费下载社区版本开始使用 Docker 引擎:
您需要创建一个 Docker 帐户才能下载引擎。 然后,您需要熟悉 Docker 的“入门”文档。 您将有八个不同版本的 Docker 可供选择。 对于此示例,我们将下载 Docker Desktop for Mac:
您需要登录到您的 Docker 帐户才能下载引擎。 此外,您需要确保您的计算机上已准备好终端应用程序。
为 WordPress 使用容器(使用 Docker)
要使用 Docker 容器在本地开发 WordPress 网站,您还将使用另一个 Docker 应用程序。 稍后我们将介绍如何安装 Compose,但重要的是要知道该工具用于在 Docker 中定义和运行多容器应用程序。 然后,你就可以直接跳进去了!
第 1 步:安装 Compose
在开始使用 Docker 之前,您需要确保已安装 Compose。 如果您正在运行 Docker Desktop for Mac 或 Windows,则 Compose 已预安装:
如果您在 Linux 上工作,则需要使用终端来执行安装命令。 请记住,Compose 依赖于 Docker 引擎。 您需要同时安装两者才能参与任何 WordPress 开发。

Compose 使用 YAML 非标记语言 (YAML) 文件来配置应用程序的所有服务。 这是一种呈现数据序列化的人性化方式,它适用于所有编程语言。 在这种情况下,YAML 文件将为 WordPress 设置必要的数据库信息。
第 2 步:定义项目
安装 Docker Engine 和 Compose 后,您就可以开始您的第一个 WordPress 开发项目了。 您需要使用“make directory”命令创建一个新的空项目目录:
mkdir new_wordpress/
您设置的目录将是您开发的上下文,并且仅包含必要的项目,包括您的 docker-compose.yaml 文件。 我们将在下一步中创建该文件。
接下来,您可以使用以下命令移至新目录:
cd new_wordpress/
您现在将在您的新项目目录中,并准备好开始工作。
第 3 步:为 YAML 创建 Docker 文件
现在,您需要创建一个新的 docker-compose.yaml 文件。 这将创建新的 WordPress 安装和必要的 MySQL 数据库。 您的文件将包含 WordPress 和数据库的所有信息,包括必要的端口、数据库、主机名和密码。
您的 YAML 文件将如下所示:
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: {}
值得注意的是 Docker 卷包含持久数据,您可能需要参考有关卷的文档以完全了解速度。
第 4 步:构建项目
现在您已经配置了 YAML 文件,您需要执行将拉入所有必需图像并设置您的 WordPress 项目的命令。 在您的项目目录中,您将运行以下命令:
docker-compose up -d
您现在应该看到 Docker 正在“拉动” MySQL 和 WordPress 映像。
值得注意的是 Docker Hub 镜像页面包含很多关于 MySQL 和 WordPress 容器的有价值的信息:
将这些视为您的多合一参考指南,其中包含有用的容器映像命令。 它们值得收藏以备后用。
第 5 步:访问您的 WordPress 安装
因为您是在本地安装此站点,所以您需要使用 YAML 文件中指定的端口,而不是典型的 WordPress /install.php
脚本。 由于我们在示例中使用 Docker Desktop for Mac,因此我们将使用https://localhost
作为 IP 地址并打开端口https://localhost:8000
。 这是您的 YAML 文件中指定的端口。
如果您以前安装过 WordPress,那么您现在可能会熟悉的领域,并且您可以完成“著名的五分钟安装”过程:
您可能需要给 Docker 几分钟来完全加载和初始化图像,然后您可以在浏览器中访问 WordPress 以完成标准安装步骤。
建议您在完成安装后也“关闭并清理”。 为此,您可以使用 Docker 'down' 命令。 这将停止并删除容器,但保留 WordPress 数据库。 如果您使用 Docker,则需要了解有关暂停、终止和停止容器的很多内容,因此值得阅读有关该主题的更多内容。
我可以将 WordPress 图像发送到生产服务器吗?
需要注意的是,托管在 WP Engine 服务器上的站点没有设置新 docker 映像所需的 root 访问权限。 但是,如果您的站点位于生产服务器上,您可以按照以下步骤发送您的图像。
现在您已经在本地创建了 WordPress 图像,您可能想知道如何在生产服务器上使用相同的图像。 您刚刚完成的一些步骤将是相同的,但您需要先在 Docker Hub 上创建一个私有存储库。
要将您的 WordPress Docker 容器投入生产,您需要使用您的 Docker 帐户并将图像推送到私有存储库。 从那里,您可以按照我们之前介绍的相同步骤进行操作,但您将通过更改 YAML 文件中的端口信息将图像从存储库直接拉到生产服务器。
使用私有存储库有一个免费选项,但您只能创建一个。 幸运的是,Docker 有许多定价层可以满足几乎所有开发人员的需求:
归根结底,如果您正在寻求改进您的开发工作流程或刚刚涉足该领域,Docker 是您资源工具包中的绝佳工具。 它还提供了大量有用的文档和支持。
使用 WP Engine 构建伟大的东西
既然您已经了解了 Docker,您可能会急切地想要开始开发一些新的应用程序来建立一个 WordPress 站点。 请记住,Docker 的最大好处之一是您将知道您的应用程序不会遇到奇怪的特定于机器的错误。
在 WP Engine,我们喜欢分享最好的开发人员资源,这样您就可以为您的客户创造令人难以置信的数字体验。 无论您是处于项目的开发、暂存还是生产阶段,我们都为您提供托管计划和创新的数字解决方案!
想知道其他快速安装 WordPress 应用程序的方法吗? 或者也许其他方式来建立一个 WordPress 网站? 在评论部分让我们知道您的想法。