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

使用 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)

分享創造快樂

© 2024 知識星球   網站地圖