如何開發一個 PHP 的 Docker 化應用(二)

jopen 9年前發布 | 11K 次閱讀 Docker PHP開發

歡迎進入「PHP 應用 Docker 開發大禮包 - Powered by DaoCloud」,我們為 PHP 開發者準備了六篇由淺入深、精心設計的系列文章。此篇為本系列的第 2 篇文章。

目標:基于 PHP 的 Docker 基礎鏡像,開發一個 Docker 化的示例 PHP 應用 。

本項目代碼維護在 DaoCloud/php-sample 項目中。

Docker 化應用的關鍵元素

* 鏡像是 Docker 應用的靜態表示,是應用的交付件,鏡像中包含了應用運行所需的所有依賴:包括應用代碼、應用依賴庫、應用運行時和操作系統。

* Dockerfile 是一個描述文件,描述了產生 Docker 鏡像的過程。詳細文檔請參見 Dockerfile文檔

* 容器是鏡像運行時的動態表示,如果把鏡像想象為一個 Class 那么容器就是這個 Class 的 instance 實例。

一個應用 Docker 化的第一步就是通過 Dockerfile 產生應用鏡像。

編寫 Dockerfile

> 本次基礎鏡像使用 PHP 官方鏡像,也可以根據自己的項目需求與環境依賴使用 定制的 PHP 基礎鏡像

因所有官方鏡像均位于境外服務器,為了確保所有示例能正常運行,DaoCloud 提供了一套境內鏡像源,并與官方源保持同步。

官方鏡像維護了自 5.4 版本起的所有 PHP 基礎鏡像,所有鏡像均采用debian:jessie作為系統鏡像。

首先,選擇官方的php:5.6-cli鏡像作為項目的基礎鏡像。

dockerfile
FROM daocloud.io/php:5.6-cli

由于該示例代碼較為簡單,我們采用僅安裝 PHP CLI 的 Docker 鏡像來運行。

接著,將代碼復制到目標目錄。

dockerfile
COPY . /app
WORKDIR /app
CMD [ "php", "./hello.php" ]

ADD與COPY的區別,總體來說ADD和COPY都是添加文件的操作,其中ADD比COPY功能更多,ADD允許后面的參數為 URL,還有ADD添加的文件為壓縮包的話,它將自動解壓。

CMD為本次構建出來的鏡像運行起來時候默認執行的命令,我們可以通過docker run的啟動命令修改默認運行命令。

Dockerfile 具體語法請參考: Dockerfile

有了 Dockerfile 以后,我們可以運行下面的命令構建 PHP 應用鏡像并命名為my-php-app:

docker build -t my-php-app .

最后,讓我們從鏡像啟動容器:

docker run my-php-app
nohighlight
Welcome the world of Docker !

如果看到這段字符串,那么就說明你成功進入到了一個 Docker 化的世界。

歡迎來到 Docker 的世界,這個世界有你意想不到的精彩!

原文  http://dockone.io/article/536
 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!