目 录CONTENT

文章目录

在 Ubuntu Debian armbian 上安装 Podman 和 Podman Compose

Hallo地瓜
2024-09-28 / 0 评论 / 1 点赞 / 32 阅读 / 0 字
温馨提示:
亲爱的读者,在阅读文章的过程中,希望您能有所收获,祝您阅读愉快!

随着容器技术的不断发展,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都适用)

  1. 更新包列表:

sudo apt update
  1. 安装 Podman

sudo apt install podman
  1. 验证安装

podman --version

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

安装 Podman Compose

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

  1. 安装依赖

sudo apt install python3 python3-pip
  1. 使用 pipx 安装 Podman Compose: 首先确保你已安装 pipx:

sudo apt install pipx
  1. 设置 pipx 的环境变量

sudo apt install python3-venv
  1. 验证安装

pipx --version
  1. 开始安装Podman Compose

pipx install podman-compose

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

更新 PATH

  1. 打开你的 ~/.bashrc 文件:

nano ~/.bashrc
  1. 在文件末尾添加以下行

export PATH="$HOME/.local/bin:$PATH"
  1. 保存并退出(在 nano 中,按 Ctrl + X,然后按 Y 确认保存)。当然你也可以用别的编辑器 vim啥的

  2. 重新加载 ~/.bashrc 文件:

source ~/.bashrc
  1. 验证 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 创建一个服务。以下是步骤:

  1. 创建服务文件

sudo nano /etc/systemd/system/my_podman_compose.service
  1. 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

替换 <container-name><host-port><container-port><image-name> 为实际值。

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

启用和启动服务

  1. 重新加载 systemd 配置

sudo systemctl daemon-reload
  1. 启用服务在启动时自动运行

sudo systemctl enable my_podman_compose.service
  1. 启动服务

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 的无守护进程架构和安全特性使其成为值得考虑的替代方案。

1

评论区