使用 Docker 可以方便地構建和管理多個版本的 PHP 環境。PHP 是一個非常流行的服務器端腳本語言,但由于歷史遺留原因,舊版本的 PHP 代碼可能無法運行在新版本的 PHP 上,因此需要在不同版本的 PHP 環境中測試和運行代碼。
Docker 可以通過鏡像和容器的方式輕松地管理多個版本的 PHP,例如我們可以使用以下命令拉取不同版本的 PHP 鏡像:
docker pull php:7.4-apache
docker pull php:7.3-apache
docker pull php:5.6-apache
這里分別拉取了 PHP 7.4、PHP 7.3 和 PHP 5.6 版本的鏡像,同時也安裝了 Apache 服務器。
接著我們可以使用以下命令創建容器:docker run -d --name php74 -p 8000:80 -v ~/my-php-project:/var/www/html php:7.4-apache
docker run -d --name php73 -p 8001:80 -v ~/my-php-project:/var/www/html php:7.3-apache
docker run -d --name php56 -p 8002:80 -v ~/my-php-project:/var/www/html php:5.6-apache
這里分別創建了名為 php74、php73 和 php56 的容器,同時將本地 ~/my-php-project 目錄映射到容器中的 /var/www/html 目錄并且將容器的 80 端口映射到本地的 8000、8001 和 8002 端口上,這樣就可以通過不同的端口訪問不同版本的 PHP 了。
除了使用不同的鏡像和容器來管理不同版本的 PHP,我們還可以使用 Docker Compose 來簡化和集中管理多個容器,例如以下是一個包含三個 PHP 容器和一個 MySQL 容器的 docker-compose.yml 文件:version: '3'
services:
php74:
image: php:7.4-apache
volumes:
- ~/my-php-project:/var/www/html
ports:
- 8000:80
php73:
image: php:7.3-apache
volumes:
- ~/my-php-project:/var/www/html
ports:
- 8001:80
php56:
image: php:5.6-apache
volumes:
- ~/my-php-project:/var/www/html
ports:
- 8002:80
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=mydatabase
ports:
- 3306:3306
在這個 docker-compose.yml 文件中,我們定義了四個服務,分別是 php74、php73、php56 和 mysql,它們之間可以相互通信和共享數據卷。定義好后,我們可以使用以下命令啟動所有服務:docker-compose up -d
這樣就可以同時啟動三個不同版本的 PHP 和一個 MySQL 服務了。
總結來說,使用 Docker 可以非常方便地構建和管理多個版本的 PHP 環境。通過不同的鏡像和容器或者使用 Docker Compose 來管理多個服務,可以更加靈活和高效地進行開發和測試工作。上一篇docker php拓展
下一篇docker php容器