容器化 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
打开浏览器,并访问 https://127.0.0.1:9000/hello.php。您应该看到一个简单的 hello world 应用程序。
在终端中,按 ctrl
+c
停止应用程序。
在后台运行应用程序
您可以通过添加 -d
选项,将应用程序与终端分离运行。在 docker-php-sample
目录中,在终端中运行以下命令。
$ docker compose up --build -d
打开浏览器,并访问 https://127.0.0.1:9000/hello.php。您应该看到一个简单的 hello world 应用程序。
在终端中,运行以下命令来停止应用程序。
$ docker compose down
有关 Compose 命令的更多信息,请参阅 Compose CLI 参考。
总结
在本节中,您学习了如何使用 Docker 容器化和运行一个简单的 PHP 应用程序。
相关信息
下一步
在下一节中,您将学习如何使用 Docker 容器开发您的应用程序。