在自己的電腦上實驗容器和莢
通過這篇新的可下載指南開始探索容器技術的要領。
在電視劇 《太空堡壘卡拉狄加Battlestar Galactica》中,這艘名副其實的巨型飛船其實并沒有做什么。它是船員們堅定的庇護所,是戰略和協調的中心聯絡點,也是資源管理的安全場所。而 卡布里安毒蛇號Caprican Vipers 這種單人的獨立太空船,出去對付邪惡的賽昂人Cylons和其他太空中的危險。他們也從不只派一兩艘毒蛇號出去。他們派了很多。這許許多多的冗余的飛船具有基本相同的能力和目的,但由于它們非常靈活和數量眾多,它們總是能夠處理每個星期都在威脅戰星的任何問題。
如果你認為你感到這像是一個正在發展中的比喻,那么你是對的。現代的“云”大而無當,是分布在很遠距離的大量基礎設施的集合體。它具有強大的能力,但如果你將其視為普通計算機,就會浪費了它的大部分能力。當你想要處理來自數百萬個輸入源的大量數據時,把你的解決方案(無論它是采用應用、網站、數據庫、服務器還是其他形式)打包起來,并發送該解決方案的微小鏡像來處理數據集群,實際上是更有效的。當然,這些都是 “容器container”,它們是云的勞動力。它們是你發送來處理服務請求的小型解決方案工廠,并且由于你可以根據任何給定時間傳入的請求生成所需要的數量,因此理論上它們是取之不盡的。
在家里使用容器
如果你沒有大量的傳入請求需要處理,你可能會想知道容器給你帶來什么好處。不過,在個人電腦上使用容器確實有其用途。
容器作為虛擬環境
通過 Podman、LXC 和 Docker 等工具,你可以像以往運行虛擬機一樣運行容器。不過,與虛擬機不同,容器沒有因模擬固件和硬件而產生的開銷。
你可以從公共倉庫下載容器鏡像,啟動一個最小化的 Linux 環境,并將其作為命令或開發的測試場所。例如,假設你想試試你在 Slackware Linux 上構建的一個應用。首先,在倉庫中搜索一個合適的鏡像:
$ podman search slackware
然后選擇一個鏡像,作為你的容器的基礎:
$ podman run -it --name slackware vbatts/slackware
sh-4.3# grep -i ^NAME\= /etc/os-release
NAME=Slackware
在工作中使用容器
當然,容器不只是個精簡的虛擬機。它們可以是針對為非常具體的需求提供的特定解決方案。如果你不熟悉容器,那么新系統管理員最常見的入門儀式之一可能會有所幫助:啟動你的第一個 Web 服務器,但是在容器中。
首先,獲取一個鏡像。你可以使用 podman search 命令來搜索你喜歡的發行版,或者直接搜索你喜歡的 httpd 服務器。當使用容器時,我傾向于信任我在裸機上使用的相同發行版。
當你你找到一個鏡像作為你的容器的基礎,你就可以運行你的鏡像。然而,正如這個術語所暗示的,容器是封起來的,所以如果你只是啟動一個容器,你將無法訪問標準的 HTTP 端口。你可以使用 -p 選項將一個容器端口映射到一個標準的網絡端口:
$ podman run -it -p 8080:80 docker.io/fedora/apache:latest
現在看看你本地主機上的 8080 端口:
$ curl localhost:8080
Apache
成功了。
了解更多
容器擁有比模仿虛擬機更多的潛力。你可以將它們分組在 “莢pod” 中,構建復雜應用的自動部署,啟動冗余服務以滿足高需求等等。如果你剛剛開始使用容器,你可以 下載我們最新的電子書 來學習該技術,甚至學習創建一個 “莢pod”,以便你可以運行 WordPress 和數據庫。