PHPConf@2014 心得分享 - 運用 Docker 部署PHP 專案
RojerChen.2014.10.19
我原本以為 Docker 是類似 微軟 Release Management 的工具,用來佈署程式到正式環境上,不過聽完之後才知道跟我想的不太一樣。簡單來說, Docker 主要的功用在於快速的佈署環境,並利用 Linux Container 的特性,用於建立一個環境獨立的環境。當你的環境需要不同的 PHP 版本時,就可以考慮使用 Docker。
過去當遇到不同版本環境的時候,我們可能有一個 VM ,裡面有某些版本的環境,另外會有一個 VM 會有其他版本的環境。這樣做其實是浪費不少資源的,而這時可以考慮使用 Docker。
來看一下官網的解說,在 VM 中我們通常會用來安裝不同的 OS,每個 OS 各自獨立。而在 Docker中,主要讓 OS 裡面的 Library 各自獨立,不會彼此互相干擾。
不同的 Container 可以彼此分開,不會互相影響
系統環境的要求,主要使用 LXC 和 AUFS 的架構
主要運作環境在 LINUX 上面跑,在 Mac 和 Windows 要額外安裝一些東西才可以跑
可以撰寫 Dockerfile 來做環境上面安裝軟體的設定,
簡單的分法,將 APP 層和 DB 層 分開,在設定轉 PORT 等相關的處理
將 PHP、Apache 、MySQL、MySQL Data 等 Container 分開,如果要更新某一項目,比方說要更新 PHP,只要將某一個 Container 分開就好。要升級 MySQL,只要把 MySQL 的 Container 砍掉,升級 MySQL 就好。
聽完後對於 Docker 的想法是,可以透過它快速建立開發環境,當開發環境有版本的的異動,可以用這樣的方式快速調整,在環境上的版本升降會更有彈性。
※延伸閱讀
心得分享:Container Summit 技術高峰會2014
心得分享:從Twelve-Factors App 角度,看如何導入 Docker 技術
0 意見:
張貼留言