容器化 PHP 应用

先决条件

  • 你已安装最新版本的 Docker Desktop
  • 你有一个 git 客户端。本节中的示例使用基于命令行的 git 客户端,但你可以使用任何客户端。

概述

本节将引导你完成 PHP 应用的容器化和运行过程。

获取示例应用

在本指南中,你将使用一个预构建的 PHP 应用。该应用使用 Composer 进行库依赖管理。你将通过 Apache Web 服务器提供该应用。

打开终端,切换到你想要工作的目录,并运行以下命令克隆仓库。

$ git clone https://github.com/docker/docker-php-sample

该示例应用是一个基本的 hello world 应用,以及一个在数据库中增加计数器的应用。此外,该应用使用 PHPUnit 进行测试。

初始化 Docker 资产

既然你有了应用,你可以使用 docker init 来创建容器化应用所需的 Docker 资产。在 docker-php-sample 目录内,在终端中运行 docker init 命令。docker init 提供了一些默认配置,但你需要回答一些关于你的应用的问题。例如,此应用使用 PHP 8.2 版本。请参考以下 docker init 示例,并使用相同的答案来回答你的提示。

$ docker init
Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000

现在,你的 docker-php-sample 目录中应该包含以下内容。

├── docker-php-sample/
│ ├── .git/
│ ├── src/
│ ├── tests/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── compose.yaml
│ ├── composer.json
│ ├── composer.lock
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.md

要了解更多关于 docker init 添加的文件,请参阅以下内容

运行应用

docker-php-sample 目录内,在终端中运行以下命令。

$ docker compose up --build

打开浏览器并访问应用,地址为 http://localhost:9000/hello.php。你应该会看到一个简单的 hello world 应用。

在终端中,按下 ctrl+c 来停止应用。

在后台运行应用

通过添加 -d 选项,你可以将应用与终端分离并在后台运行。在 docker-php-sample 目录内,在终端中运行以下命令。

$ docker compose up --build -d

打开浏览器并访问应用,地址为 http://localhost:9000/hello.php。你应该会看到一个简单的 hello world 应用。

在终端中,运行以下命令来停止应用。

$ docker compose down

有关 Compose 命令的更多信息,请参阅 Compose CLI 参考

总结

在本节中,你学习了如何使用 Docker 容器化和运行一个简单的 PHP 应用。

相关信息

下一步

在下一节中,你将学习如何使用 Docker 容器开发你的应用。

页面选项