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!”:
$ 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 構建容器映象的文章[3] —— 它不僅僅是使用典型的 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[4] 上提供 —— 一個基於容器的工作流的新一代 Linux 工作站。要在任何 Fedora 版本上安裝它,只需執行:
$ sudo dnf install podman
via: https://fedoramagazine.org/running-containers-with-podman/
作者:Adam Šamalík[6] 選題:lujun9972 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出