容器化一个PHP应用程序

先决条件

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

概述

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

获取示例应用程序

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

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

$ 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容器开发您的应用程序。