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

更新於 發佈於 閱讀時間約 3 分鐘

(本文譯自〈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
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
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 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News