歡迎光臨
每天分享高質量文章

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

但即使 Docker 是管理 Linux 容器的一個非常方便的工具,它也有兩個缺點:它是一個需要在你的系統上運行的守護行程,並且需要以 root 權限運行,這可能有一定的安全隱患。
— Adam Šamalík


致謝
編譯自 | 
https://fedoramagazine.org/running-containers-with-podman/
 
 作者 | Adam Šamalík
 譯者 | geekpi ???共計翻譯:815.5 篇 貢獻時間:1827 天

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

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

什麼是 Docker

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

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

Podman 介紹

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

使用 Podman 運行容器

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

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

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

  1. $ cat Dockerfile

  2. FROM fedora:28

  3. RUN dnf -y install cowsay

  4. $ podman build . -t hello-world

  5. ... output omitted ...

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

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

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

  1. $ podman login docker.io

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

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

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

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

安裝 Podman

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

  1. $ sudo dnf install podman


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

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

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

赞(0)

分享創造快樂

© 2021 知識星球   网站地图