安装 podman 与 podman-compose

文章目录

  • Github
  • 官网
  • 文档
  • [Podman 简介](#Podman 简介)
    • [Podman 与 Docker 区别](#Podman 与 Docker 区别)
  • [Podman 安装](#Podman 安装)
  • [Podman 虚拟机](#Podman 虚拟机)
  • [Podman 镜像与容器](#Podman 镜像与容器)
  • [安装 podman-compose](#安装 podman-compose)
  • docker-compose.yml

Github

官网

文档

Podman 简介

  • Podman 是一个用于管理容器和容器镜像的工具,它允许用户创建、运行和管理容器和容器集群。Podman 的设计目标是提供一个无守护进程(daemon-less)的容器管理体验。

  • 兼容性: Podman 旨在与 Docker CLI 兼容,这意味着你可以使用类似的命令来操作容器和镜像。例如,podman run 与 docker run 执行的功能类似。

  • 无守护进程: Podman 的一个重要特点是它不需要一个持续运行的守护进程。每个 Podman 命令都是一个单独的进程,这使得 Podman 更加符合系统级别的服务和工具的标准。

  • Rootless 模式: Podman 支持无根用户(rootless)模式,即使在没有 root 权限的情况下,也可以创建和管理容器。这提升了安全性,因为容器不会以 root 权限运行。

  • Pod 概念: Podman 支持 Kubernetes 的 Pod 概念,使得在一个 Pod 中运行多个容器变得更为简单。这对于模拟和开发 Kubernetes 环境非常有用。

Podman 与 Docker 区别

  • 守护进程:

    • Docker: 依赖一个持续运行的守护进程(Docker Daemon)来管理容器。
    • Podman: 不依赖守护进程,每个 Podman 命令都是一个独立的进程。这使得 Podman 更加轻量和灵活。
  • Rootless 支持:

    • Docker: 传统上需要 root 权限来运行守护进程,虽然现在也有一些支持 rootless 模式的功能,但它不是默认设置。
    • Podman: 从设计上支持 rootless 模式,用户可以在没有 root 权限的情况下运行和管理容器。
  • 兼容性和接口:

    • Docker: 拥有自己的 CLI 和 API。
    • Podman: 设计上与 Docker CLI 兼容,许多 Docker 命令可以直接用 Podman 运行。
  • 系统集成:

    • Docker: 在许多 Linux 发行版中通常是一个单独的系统服务,使用 Docker 服务启动和管理容器。
    • Podman: 可以直接集成到系统的服务管理中,而不需要一个持续运行的守护进程。
  • 安全性:

    • Docker: Docker Daemon 以 root 权限运行,这可能带来一些安全风险。
    • Podman: 由于其 rootless 支持,容器的运行和管理可以在没有 root 权限的情况下进行,从而减少了潜在的安全风险。

Podman 安装

下载安装(推荐)

brew 安装(Mac)

bash 复制代码
brew install podman

Podman 虚拟机

注: 在不支持容器直接运行的系统上(如 macOS 和 Windows)提供容器支持。

bash 复制代码
podman machine --help
# 列出所有 podman 虚拟机
podman machine list
# 初始化 podman 默认虚拟机,默认2核cpu、2G内存、100G磁盘
podman machine init
# 初始化 podman-vm 虚拟机,默认2核cpu、2G内存、100G磁盘
podman machine init podman-vm
# 创建 podman-vm 虚拟机,1核cpu、内存1G 、磁盘50G
podman machine init --cpus=1 --memory=1024 --disk-size 50 --rootful podman-vm
# 创建 podman-vm 虚拟机,添加挂载目录
podman machine init -v /Users:/mnt/Users
bash 复制代码
# 检查虚拟机
podman machine inspect podman-vm 
bash 复制代码
# 启动 podman-vm 虚拟机
podman machine start podman-vm
# 停止 podman-vm 虚拟机
podman machine stop podman-vm
# 删除 podman-vm 虚拟机
podman machine rm podman-vm
  • 验证 podman 安装
bash 复制代码
podman info
bash 复制代码
# 使用 Podman 访问 podman-vm 虚拟机
podman machine ssh podman-vm
bash 复制代码
# 查看 Podman 虚拟机
podman machine info
bash 复制代码
podman system connection list

虚拟机基础

  • 查看当前系统版本
bash 复制代码
cat /etc/os-release
  • 虚拟机内安装软件包
bash 复制代码
# 帮助命令
rpm-ostree --help
# 安装 vim
rpm-ostree install vim
# 必须重启系统后 vim 才会生效
systemctl reboot
  • 虚拟机内配置文件目录
bash 复制代码
cd /etc/containers

rootful 模式

  • 特权操作: 某些容器操作需要 root 权限,例如绑定挂载到主机的特定文件系统或网络配置。

    在 rootful 模式下,可以允许容器做更多系统级的操作,类似于传统的 Docker 守护进程模式。

  • 兼容性: 某些旧的应用程序或容器镜像可能依赖于 root 权限的特性。

  • 集成: 与传统的 Docker 环境更好地集成和兼容,特别是那些对 root 权限有特定要求的应用程序。

bash 复制代码
podman machine set --rootful podman-vm

当使用 --rootful 选项时,Podman 将在虚拟机中以 root 权限运行容器管理服务。默认情况下,Podman 在虚拟机中通常以 rootless 模式运行,即无需 root 权限就能操作容器。

Podman 镜像与容器

注: Podman 操作命令兼容 Docker 命令。

bash 复制代码
podman pull mysql:5.7
bash 复制代码
podman images
bash 复制代码
podman rmi mysql:5.7
bash 复制代码
podman ps
podman ps -a

安装 podman-compose

bash 复制代码
pip install --upgrade pip
pip install podman-compose
bash 复制代码
podman-compose -v

docker-compose.yml

yml 复制代码
version: '3'
services:
  nginx:
    image: nginx:1.27
    container_name: nginx
    restart: always
    ports:
      - 8080:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/ssl:/etc/nginx/ssl
      - ./nginx/logs:/var/log/nginx
      - ./nginx/html:/usr/share/nginx/html

注: podman-compose 操作命令兼容 docker-compose 命令。

bash 复制代码
podman-compose up -d nginx
相关推荐
亲持红叶2 小时前
open-webui安装
docker·open-webui
伪装成塔的小兵2 小时前
Windows使用docker部署fastgpt出现的一些问题
windows·docker·容器·oneapi·fastgpt
转身後 默落6 小时前
11.Docker 之分布式仓库 Harbor
分布式·docker·容器
菩提云6 小时前
Deepseek存算分离安全部署手册
人工智能·深度学习·安全·docker·容器
c无序13 小时前
Docker-技术架构演进之路
docker
努力的小T16 小时前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
东风微鸣18 小时前
TTRSS 迁移实战
docker·云原生·kubernetes·可观察性
转身後 默落20 小时前
04.Docker 镜像命令
docker·容器·eureka
IT_张三20 小时前
Docker+Kubernetes_第一章_Docker入门
java·docker·kubernetes
jessezappy20 小时前
记录:Docker 安装记录
docker·安装·ollama·软链接