Podman 是一個開源容器工具,可以在多個平台上使用。它的跨平台性可以在不同環境中進行容器管理和執行。
以下是一些主要支持 Podman 的平台:
Linux: Podman 最初是為 Linux 開發的,因此在 Linux 環境中的支持最好。它在許多主要的 Linux 發行版上運行,包括 CentOS、Fedora、Red Hat Enterprise Linux(RHEL)、Ubuntu 等。
macOS: 可以在 macOS 上運行 Podman,但通常需要使用額外的軟件,如 Podman for macOS 或者 Homebrew 安裝。
Windows:可以在 Windows 的 WSL 中使用 Podman。
Docker 和 Podman都是容器化技術的工具,以下是它們之間的一些主要區別:
Docker
Docker使用守護程序Docker Daemon管理容器,因此通常需要 root 或 sudo 權限來運行。
Docker 擁有廣大的生態系統,因此更容易找到現成的映像和工具,Docker Hub 是一個公共容器映像庫,用戶可以從中下載現成的映像。另外Docker Compose 是 Docker 的附加工具,用於定義和管理多個容器應用的多容器環境。
Podman
Podman是由 Red Hat 開發的開源容器工具,用於管理容器生命週期。
在安全性方面不同於 Docker,Podman 不需要守護程序,它使用獨立的進程來運行容器,因此無需 root 權限,因為不需要 root 權限,所以減少了潛在的攻擊,在安全性方面通常被認為更優越。Podman 也支持 Docker Compose 文件,因此您可以使用 Docker Compose。
如果您使用的是 Fedora、CentOS 或其他基於 Red Hat 的 Linux 發行版,通常會使用 dnf 包管理器來安裝軟體。下面是如何使用 dnf 安裝 Podman 的步驟:
1.首先確認 dnf 套件管理器已經更新,安裝的是最新版本的軟體。
sudo dnf update
sudo dnf install -y podman podman-plugins runc
podman --version
podman run -it --name mycontainer ubuntu bash
常用的 podman run 參數說明:
-i, --interactive: 啟用交互模式,在容器中進行交互式操作,例如鍵入命令。
-t, --tty: 分配一個虛擬終端(TTY),以交互方式使用容器,通常與 -i 一起使用。
--name: 為容器指定一個名稱,以便在操作中使用它,而不必使用容器的 ID。
-d, --detach: 將容器放在後台運行,並立即返回命令行提示符。這對於在容器中運行守護進程很有用。
--rm: 在容器退出時自動刪除容器,這對於一次性操作非常有用。
-v, --volume: 當容器生命週期結束,容器內之資料數據也會跟著消失,volume可將容器內部的路徑儲存到主機的文件系統路徑以保存資料數據。例如:-v /host/path:/container/path。
-p, --publish: 指定端口映射,將容器內部的端口映射到主機上。例如,-p 8080:80 將容器的端口 80 映射到主機的端口 8080。
--network: 指定容器所屬的網絡,可以指定現有網絡或創建新的網絡。
-e, --env: 設置環境變數,允許您傳遞環境變數給容器。例如,-e MY_VARIABLE=123
podman ps
podman ps -a
podman images
podman rmi my_image
刪除名為 "my_image" 的容器映像。
podman pull ubuntu:latest
podman build -t myapp:latest .
podman exec -it container_id /bin/bash
podman stop container_id
podman rm container_id
這些是一些常見的 Podman 指令,可以使用 podman --help 或 man podman 來查看更多的Podman 的文檔和指南,提供更多的其他功能和選項等使用方法。