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