給 PHP 開發者的 Docker 文件(一)

更新 發佈閱讀 3 分鐘
raw-image

(本文譯自〈Docker for PHP Developers〉)

數年以來我都用 Vagarant 管理本地的開發伺服器,根據 Vagrant 網站所述,Vagrant 是用於創建、組態輕量的(light-weight)、可重製的(reproducible)、可移植的(portable)開發環境的工具。基本上,我的每個專案所需的特有的軟體組合都靠 Vagrant 幫忙創建(create)與腳本化實現(provision)。有 Vagrant,可以幫我們達成下面三件事:

  1. Vagrant 隔離每個專案的環境避免軟體衝突。
  2. Vagrant 讓專案的每個成員都擁有相同的軟體版本。
  3. Vagrant 建構的本地開發環境可相當於實際上線的環境。

不過咧!Vagrant 有個比較大的缺點,它依賴硬體層的虛擬化能力,這表示每個專案都是跑在完整的虛擬機內,而每個虛擬機內都是跑一個完完整整的作業系統,這吃掉了許多的系統資源(像是處理器、記憶體與以 gigabytes 計的磁碟空間),當數個專案同時一起跑起來時我最常見到的警告訊息就是:

您的啟動磁碟快滿了。
Your startup disk is almost full.

邏輯上的解決方法是把數個專案跑在同一台 Vagrant 虛擬機內,著名的 Laravel Homestead 就是走這套策略,不過你的專案就再也無法彼此隔離了,也無法再為每個專案建構特有的伺服軟體架構(server software stack),然而好處是這節省了系統資源,並且簡化了基礎架構(infrastructure)的安裝與管理功夫。如果你想利用 Vagrant 管理本地專案的話,本人強力建議採用 Laravel Homestead 的單一虛擬機、多專案的架構。

不過本文要談的是另一種解決方案,先別說 Vagrant 了,你聽過 Docker 嗎?我是在一年前才首次聽說過這玩意,依我說啊,Docker 的精髓在於容器(container)。什麼是容器??老夫深入了解並閱讀了許許多多什麼容器化(containerization)、程序隔離(process isolation)、union filesystems 的文件後。那一大堆的專有名詞和概念開始繞著我的腦袋繞圈圈,在那天結束之時,我還在抓著我的頭疑惑著 Docker 是啥?以及 Docker 能幫我幹嘛?不過自此之後我學到很多,並且我想讓你知道,身為一個開發者,Docker 是如何地改變我的生涯。

(待續…)

留言
avatar-img
留言分享你的想法!
avatar-img
Leon的沙龍
15會員
64內容數
Where I go and what I get.
Leon的沙龍的其他內容
2024/04/10
Goolge OR-Tools 是一套以數學模型為基礎的求解器,相較於 OptaPlanner,OR-Tools 有更平緩的學習曲線,本文是 OR-Tools 最基礎的介紹。
Thumbnail
2024/04/10
Goolge OR-Tools 是一套以數學模型為基礎的求解器,相較於 OptaPlanner,OR-Tools 有更平緩的學習曲線,本文是 OR-Tools 最基礎的介紹。
Thumbnail
2024/04/09
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
2024/04/09
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
2024/04/09
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
Thumbnail
2024/04/09
SpiffWorkflow 是一個專門針對業務流程的流程引擎,它與商業 BPMN 產品有所區別,適合應用在自有專案中,並且需要內含稍微複雜的商業流程。例如,對於需要外部程式與前端配合才能真正讓用戶輸入決斷的場景,SpiffWorkflow 是一個適合的解決方案。
Thumbnail
看更多
你可能也想看
Thumbnail
十一月底正好要去斯里蘭卡,之前趁雙十一時就把旅行必備東西陸續買齊。 現在我依然在斯里蘭卡的旅行路上,邊當旅人邊推薦旅行好物給你們!(這篇記得收藏起來喔!)
Thumbnail
十一月底正好要去斯里蘭卡,之前趁雙十一時就把旅行必備東西陸續買齊。 現在我依然在斯里蘭卡的旅行路上,邊當旅人邊推薦旅行好物給你們!(這篇記得收藏起來喔!)
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
前言 上次我們對 Docker 架構進行了講解,今天我們來講解 Docker 的好處,他到底可以幫助我們什麼事情 ? 為什麼 Docker 如此受人喜歡 ? 現在就來講述 Docker 有什麼好處 跨平台 Docker 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打
Thumbnail
前言 上次我們對 Docker 架構進行了講解,今天我們來講解 Docker 的好處,他到底可以幫助我們什麼事情 ? 為什麼 Docker 如此受人喜歡 ? 現在就來講述 Docker 有什麼好處 跨平台 Docker 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打
Thumbnail
前言 上次我們針對 Docker 這樣容器化技術做了一點介紹,今天我們要來講解 Docker 架構,你是否發現在每次程式上伺服器的流程很麻煩呢 ? 是否發現你寫的程式在別的作業系統不能用呢 ? 如果你遇到這些問題,Docker 都可以幫助你解決這些問題 Docker 架構 在 Docker 這
Thumbnail
前言 上次我們針對 Docker 這樣容器化技術做了一點介紹,今天我們要來講解 Docker 架構,你是否發現在每次程式上伺服器的流程很麻煩呢 ? 是否發現你寫的程式在別的作業系統不能用呢 ? 如果你遇到這些問題,Docker 都可以幫助你解決這些問題 Docker 架構 在 Docker 這
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News