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

閱讀時間約 2 分鐘
圖片來自 Vincent PONTIER
(本文譯自〈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
15會員
64內容數
Where I go and what I get.
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Leon的沙龍 的其他內容
圖片來自 josemdelaa 本文試圖從眾多電腦廠商的電力方案中,找出最佳解。 首先,我們必須先思考,消費者要的是什麼,我們當然可以天馬行空的想著超大範圍的無線供電方案之類的夢想,不過從務實考量,在現有的科技水平下,以筆電這樣的行動應用,除了續航力,重量這檔事顯然也必須被納入考量,任何人都可以理解
本文已搬家,請點此前往最新版本。 不過,Linux 的疊床架屋式架構又再度表露,Preferred Applications、gnome-www-browser、x-www-browser 這三者根本就同樣目的的東西,不知道弄成三個設定是怎樣?!
圖片來自 timwesterhoff 今日在朋友分享給我的 buzz 中有一則〈如何將 NB 的無線網路變成可分享 Wi-Fi 的 AP 模式 (Ad-Hoc)〉,不過,其實這世界上還有更平易近人的做法,並且不限於透過單一界面,每一台 Mac 上的基本配備—WiFi、乙太網路 、藍牙,只要其中一種界
圖片來自 William Warby 一般來說,資料的備份策略從規模的小到大,我們可以有幾種選擇,如果只是小規模的、輕量的,通常是燒成備份光碟,操作方式也多是手動的,然而隨著年紀的增長  Orz,資料也跟著增長,當資料量大到某種規模,手動備份就變得沒效率且不實際,這時我們就需要專門的備份軟體來自動的
騎單車上班,是一種挑戰,也是一種放鬆,更是一種體驗。
合併 Excel 表讓你力不從心嗎?讓 ExcelMerger 幫助你,全台灣第一個具有文創、小農、獨立、手做元素的 app 終於姍姍來遲了!
圖片來自 josemdelaa 本文試圖從眾多電腦廠商的電力方案中,找出最佳解。 首先,我們必須先思考,消費者要的是什麼,我們當然可以天馬行空的想著超大範圍的無線供電方案之類的夢想,不過從務實考量,在現有的科技水平下,以筆電這樣的行動應用,除了續航力,重量這檔事顯然也必須被納入考量,任何人都可以理解
本文已搬家,請點此前往最新版本。 不過,Linux 的疊床架屋式架構又再度表露,Preferred Applications、gnome-www-browser、x-www-browser 這三者根本就同樣目的的東西,不知道弄成三個設定是怎樣?!
圖片來自 timwesterhoff 今日在朋友分享給我的 buzz 中有一則〈如何將 NB 的無線網路變成可分享 Wi-Fi 的 AP 模式 (Ad-Hoc)〉,不過,其實這世界上還有更平易近人的做法,並且不限於透過單一界面,每一台 Mac 上的基本配備—WiFi、乙太網路 、藍牙,只要其中一種界
圖片來自 William Warby 一般來說,資料的備份策略從規模的小到大,我們可以有幾種選擇,如果只是小規模的、輕量的,通常是燒成備份光碟,操作方式也多是手動的,然而隨著年紀的增長  Orz,資料也跟著增長,當資料量大到某種規模,手動備份就變得沒效率且不實際,這時我們就需要專門的備份軟體來自動的
騎單車上班,是一種挑戰,也是一種放鬆,更是一種體驗。
合併 Excel 表讓你力不從心嗎?讓 ExcelMerger 幫助你,全台灣第一個具有文創、小農、獨立、手做元素的 app 終於姍姍來遲了!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
默默覺得,要解釋 docker 與 VM 在執行方式上的差異,可以用水族箱來說明。
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
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 是一項容器化技術,他可以降低我們在佈署 App 時,讓我們可以有效的分配作業系統資源,降低佈署作業成本,現在讓我們來了解 Docker 要解決的問題 傳統佈署遇
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
為什麼要用Docker安裝? Docker是一個容器化平台, 就類似於我們早期虛擬機的VMWare、Virtual Box…等, 虛擬機平台一般, 只是面向的是伺服端, 供企業快速、簡單、輕量的佈署開發完成的程式軟體, 並將相關的環境依賴皆封裝成一包所謂的映像檔(image), 透過這樣的方式減少
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
默默覺得,要解釋 docker 與 VM 在執行方式上的差異,可以用水族箱來說明。
Thumbnail
前言 上次我們初步體驗 Docker 快速佈署能力,今天我們要來講解 Dockerfile、Docker Image 與 Docker Container 這些常見的名詞,我們來了解在我們佈署的時候做哪些事情 Docker 佈署流程 首先看到如下圖上半部,在我們一個完整的佈署流程,我們會先將我
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 是一項容器化技術,他可以降低我們在佈署 App 時,讓我們可以有效的分配作業系統資源,降低佈署作業成本,現在讓我們來了解 Docker 要解決的問題 傳統佈署遇