在自己的電腦上實驗容器和莢
在電視劇 《 太空堡壘卡拉狄加 》中,這艘名副其實的巨型飛船其實並沒有做什麼。它是船員們堅定的庇護所,是戰略和協調的中心聯絡點,也是資源管理的安全場所。而 卡布里安毒蛇號 這種單人的獨立太空船,出去對付邪惡的 賽昂人 和其他太空中的危險。他們也從不只派一兩艘毒蛇號出去。他們派了很多。這許許多多的冗餘的飛船具有基本相同的能力和目的,但由於它們非常靈活和數量眾多,它們總是能夠處理每個星期都在威脅戰星的任何問題。
如果你認為你感到這像是一個正在發展中的比喻,那麼你是對的。現代的「雲」大而無當,是分布在很遠距離的大量基礎設施的集合體。它具有強大的能力,但如果你將其視為普通計算機,就會浪費了它的大部分能力。當你想要處理來自數百萬個輸入源的大量數據時,把你的解決方案(無論它是採用應用、網站、資料庫、伺服器還是其他形式)打包起來,並發送該解決方案的微小鏡像來處理數據集群,實際上是更有效的。當然,這些都是 「 容器 」,它們是雲的勞動力。它們是你發送來處理服務請求的小型解決方案工廠,並且由於你可以根據任何給定時間傳入的請求生成所需要的數量,因此理論上它們是取之不盡的。
在家裡使用容器
如果你沒有大量的傳入請求需要處理,你可能會想知道容器給你帶來什麼好處。不過,在個人電腦上使用容器確實有其用途。
容器作為虛擬環境
通過 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
成功了。
了解更多
容器擁有比模仿虛擬機更多的潛力。你可以將它們分組在 「 莢 」 中,構建複雜應用的自動部署,啟動冗餘服務以滿足高需求等等。如果你剛剛開始使用容器,你可以 下載我們最新的電子書 來學習該技術,甚至學習創建一個 「 莢 」,以便你可以運行 WordPress 和資料庫。
(LCTT 譯註:容器環境中使用的 「Pod」 一詞,我以前根據容器相關術語多用航海領域名詞比喻來將其譯做「吊艙」,但也有同學表示了不同意見。根據對 Kubernetes [文檔](https://kubernetes.io/docs/concepts/workloads/pods/#:~:text=A%20Pod%20(as%20in%20a,run%20in%20a%20shared%20context.),這個詞來自對 鯨魚莢 、 豌豆莢 的比喻,所以我覺得採用「莢」的翻譯比較合適。—— wxy)
via: https://opensource.com/article/22/5/containers-pods-101-ebook
作者:Seth Kenlon 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive