當前位置: 首頁> 最新文章列表> 實用指南:在Docker 中高效運行PHP 項目

實用指南:在Docker 中高效運行PHP 項目

gitbox 2025-07-21

在Docker 中運行PHP 的優勢

隨著容器技術的普及,Docker 已成為現代軟件開發的重要工具。對於PHP 開發者而言,Docker 不僅能解決“在我機器上沒問題”的困擾,還能提高部署效率和環境一致性。

使用Docker 運行PHP 應用具備以下優勢:

環境一致性:確保開發、測試和生產環境保持一致。

部署快速:鏡像構建一次,可在多平台重複使用。

易於維護:容器隔離性強,更新與回滾更方便。

創建基礎PHP Dockerfile

Dockerfile 是定義容器運行環境的文件。以下是一個適用於PHP 項目的基礎示例:

 FROM php:8.0-apache
# 拷貝 PHP 源代碼到容器中
COPY src/ /var/www/html/
# 啟用 Apache 的 mod_rewrite 模塊
RUN a2enmod rewrite

這個Dockerfile 使用了PHP 8.0 搭配Apache 的官方鏡像,將項目源代碼複製到容器的Web 根目錄中,並啟用了URL 重寫功能,適用於多數PHP 框架。

構建鏡像並運行容器

編寫好Dockerfile 後,可以使用以下命令進行鏡像構建與容器啟動:

 # 構建鏡像
docker build -t my-php-app .

# 運行容器
docker run -d -p 80:80 my-php-app

這段命令會創建名為my-php-app的鏡像,並啟動一個後台運行的容器,將容器的80 端口映射到主機端口。

使用Docker Compose 管理多容器應用

當項目涉及多個服務(如數據庫)時,Docker Compose 是極佳的選擇。以下是一個典型的PHP + MySQL 的Compose 配置示例:

 version: '3.8'
services:
  web:
    image: php:8.0-apache
    volumes:
      - ./src:/var/www/html/
    ports:
      - "80:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: my_db

這個配置定義了兩個服務:

web :PHP 應用容器,映射本地代碼目錄,並開放80 端口。

db :MySQL 服務,設置了root 密碼及默認數據庫。

通過docker-compose up命令即可一鍵啟動所有服務,極大提升開發效率。

總結

將PHP 應用容器化是構建可移植、高可維護性系統的重要步驟。通過合理編寫Dockerfile 和使用Docker Compose,不僅可以快速搭建開發環境,還能確保線上部署的穩定與一致。

掌握這些Docker 與PHP 的結合技巧,將為你的開發流程帶來更多可能性與便利。