Linux中國

使用 Podman 以非 root 用戶身份運行 Linux 容器

Linux 容器是由 Linux 內核所提供的具有特定隔離功能的進程 —— 包括文件系統、進程和網路的隔離。容器有助於實現可移植性 —— 應用可以在容器鏡像中與其依賴項一起分發,並可在幾乎任何有容器運行時環境的 Linux 系統上運行。

雖然容器技術存在了很長時間,但 Linux 容器是由 Docker 而得到了廣泛推廣。 「Docker」 這個詞可以指幾個不同的東西,包括容器技術和工具,周圍的社區,或者 Docker Inc. 公司。但是,在本文中,我將用來指管理 Linux 容器的技術和工具。

什麼是 Docker

Docker 是一個以 root 身份在你的系統上運行的守護程序,它利用 Linux 內核的功能來管理正在運行的容器。除了運行容器之外,它還可以輕鬆管理容器鏡像 —— 與容器註冊庫交互、存儲映像、管理容器版本等。它基本上支持運行單個容器所需的所有操作。

但即使 Docker 是管理 Linux 容器的一個非常方便的工具,它也有兩個缺點:它是一個需要在你的系統上運行的守護進程,並且需要以 root 許可權運行,這可能有一定的安全隱患。然而,Podman 在解決這兩個問題。

Podman 介紹

Podman 是一個容器運行時環境,提供與 Docker 非常相似的功能。正如已經提示的那樣,它不需要在你的系統上運行任何守護進程,並且它也可以在沒有 root 許可權的情況下運行。讓我們看看使用 Podman 運行 Linux 容器的一些示例。

使用 Podman 運行容器

其中一個最簡單的例子可能是運行 Fedora 容器,在命令行中列印 「Hello world!」:

$ podman run --rm -it fedora:28 echo "Hello world!"

使用通用 Dockerfile 構建鏡像的方式與 Docker 相同:

$ cat Dockerfile
FROM fedora:28
RUN dnf -y install cowsay

$ podman build . -t hello-world
... output omitted ...

$ podman run --rm -it hello-world cowsay "Hello!"

為了構建容器,Podman 在後台調用另一個名為 Buildah 的工具。你可以閱讀最近一篇關於使用 Buildah 構建容器鏡像的文章 —— 它不僅僅是使用典型的 Dockerfile。

除了構建和運行容器外,Podman 還可以與容器託管進行交互。要登錄容器註冊庫,例如廣泛使用的 Docker Hub,請運行:

$ podman login docker.io

為了推送我剛剛構建的鏡像,我只需打上標記來代表特定的容器註冊庫,然後直接推送它。

$ podman -t hello-world docker.io/asamalik/hello-world
$ podman push docker.io/asamalik/hello-world

順便說一下,你是否注意到我如何以非 root 用戶身份運行所有內容?此外,我的系統上沒有運行又大又重的守護進程!

安裝 Podman

Podman 默認在 Silverblue 上提供 —— 一個基於容器的工作流的新一代 Linux 工作站。要在任何 Fedora 版本上安裝它,只需運行:

$ sudo dnf install podman

via: https://fedoramagazine.org/running-containers-with-podman/

作者:Adam Šamalík 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...