安装 Podman 和 Podman Compose


随着容器技术的不断发展,Podman 作为一个无守护进程的容器管理工具,越来越受到开发者的青睐。Podman 提供了与 Docker 相似的命令行界面,但其设计理念更加注重安全性和灵活性。在这篇文章中,我们将介绍如何在 Ubuntu Debian armbian上安装 Podman 和 Podman Compose,并简要比较它们与 Docker 的异同。

Podman vs. Docker

无守护进程:Podman 运行容器时不需要一个持续运行的守护进程,这使得它在系统资源的使用上更加高效。Docker 依赖一个守护进程,可能带来额外的安全风险。

Rootless 容器:Podman 支持无权限用户创建和运行容器,这样可以减少潜在的安全漏洞。虽然 Docker 也有类似的功能,但 Podman 的设计使其更容易实现。

命令兼容性:Podman 的命令行工具与 Docker 的命令行工具基本兼容,因此大多数 Docker 用户可以很容易地转向 Podman。

Pod 概念:Podman 支持 Pod 的概念,即将多个容器组合在一起,使得管理复杂的应用程序变得更加简单。这在 Kubernetes 中也得到了广泛应用。

安装 Podman (此方法Debian armbian都适用)

更新包列表:

sudo apt update

安装 Podman:

sudo apt install podman

验证安装:

podman --version

执行后会返回版本信息说明安装成功

安装 Podman Compose

Podman Compose 是一个用于管理 Podman 容器的工具,类似于 Docker Compose。

安装依赖:

sudo apt install python3 python3-pip

使用 pipx 安装 Podman Compose: 首先确保你已安装 pipx:

sudo apt install pipx

设置 pipx 的环境变量

sudo apt install python3-venv

验证安装

pipx --version

开始安装Podman Compose

pipx install podman-compose

成功安装 podman-compose 了!不过,你需要将 /home/digua/.local/bin (此路径是我机器的路径)添加到你的 PATH 中,以便可以全局访问。你可以按照以下步骤操作:

更新 PATH

打开你的 ~/.bashrc 文件:

nano ~/.bashrc

在文件末尾添加以下行:

export PATH="$HOME/.local/bin:$PATH"

保存并退出(在 nano 中,按 Ctrl + X,然后按 Y 确认保存)。当然你也可以用别的编辑器 vim啥的

重新加载 ~/.bashrc 文件:

source ~/.bashrc

验证 podman-compose 是否安装成功

podman-compose --version

返回版本号就成功了

此时此刻你就可以使用podman了 怎么使用如果你使用过docker 对于podman没什么难度 看看下面的命令是不是秒懂了

查看版本 podman --version
拉取镜像 podman pull <image-name>
所有容器 podman ps -a
运行容器 podman run -d --name <container-name> -p <host-port>:<container-port> <image-name>
停止容器 podman stop <container-name>
启动容器 podman start <container-name>
删除容器 podman rm <container-name>
容器日志 podman logs <container-name>
进到容器 podman exec -it <container-name> <command>
Podman Compose 常用命令
启动项目 podman-compose up -d
停止项目 podman-compose down
项目状态 podman-compose ps
查看日志 podman-compose logs
重新项目 podman-compose restart

需要注意的是Podman 本身并没有内建自动启动功能。如果你希望项目在系统启动时自动运行,建议使用 systemd 来管理容器的启动。

要让 podman-compose 项目自启动,你可以使用 systemd 创建一个服务。以下是步骤:

创建服务文件

sudo nano /etc/systemd/system/my_podman_compose.service

Podman Compose项目添加以下内容到服务文件:

[Unit]
Description=Podman Compose Service
After=network.target

[Service]
WorkingDirectory=/path/to/your/project
ExecStart=/usr/local/bin/podman-compose up
ExecStop=/usr/local/bin/podman-compose down
Restart=always

[Install]
WantedBy=multi-user.target

将 /path/to/your/project 替换为你 podman-compose 项目的实际路径。

Podman 项目添加以下内容到服务文件

[Unit]
Description=Podman Container Service
After=network.target

[Service]
ExecStart=/usr/bin/podman run --name <container-name> -p <host-port>:<container-port> <image-name>
ExecStop=/usr/bin/podman stop <container-name>
Restart=always

[Install]
WantedBy=multi-user.target

替换 为实际值。

保存退出(按 Ctrl + X,然后按 Y 确认保存 )

启用和启动服务

重新加载 systemd 配置:

sudo systemctl daemon-reload

启用服务在启动时自动运行:

sudo systemctl enable my_podman_compose.service

启动服务:

sudo systemctl start my_podman_compose.service

检查服务状态

你可以使用以下命令检查服务是否正常运行:

sudo systemctl status my_podman_compose.service

如果需要停止或重启服务,可以使用:

sudo systemctl stop my_podman_compose.service
sudo systemctl restart my_podman_compose.service

Podman 和 Podman Compose 为容器化应用提供了一种安全、灵活的解决方案。尽管 Docker 仍然是市场上最流行的容器管理工具,但 Podman 的无守护进程架构和安全特性使其成为值得考虑的替代方案。


收藏

扫描二维码,在手机上阅读

-

干净的卸载docker

评 论