四时宝库

程序员的知识宝库

第一章 初识Podman(第一章 初识女体(1))

第一章 初识Podman

一、官网了解

地址:https://podman.io/

主页介绍: 最好的免费和开源容器工具 使用 Podman 管理容器、Pod 和映像。从本地环境无缝使用容器和 Kubernetes。

PODMAN

DOCKER

Podman 是无守护进程的

Docker 有一个守护进程 (containerd) docker CLI 与守护进程交互以管理容器

Podman 直接通过 runc 与 Linux 内核交互

Docker 守护进程拥有所有运行容器的子进程

Podman 可以部署具有多个容器的 pod。可以在 Kubernetes 中使用相同的 pod 清单。此外,您可以将 K8s pod 清单部署为 Podman pod。

Docker 中没有 pod 的概念

| 无需任何额外配置即可运行无根容器( rootless)。您可以使用 root 或非特权用户运行容器。| Docker 无根模式( rootless)需要额外的配置

二、CentOS 7 安装

这里个人使用Linux安装,我使用的是CentOS 7,Podman也支持windows和macOS, 下载地址:
https://podman.io/docs/installation

1、Linux CentOS 命令安装

dnf -y install podman

2、检查安装结果

podman version

Centos 7 支持最高版本为 3.4.4 默认安装的是1.6.4 版本太旧

三、源码安装 3.4.4

1、安装go

# 临时关闭selinux
setenforce 0
# 安装golang,版本需要在 v1.6 以上
wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
tar xf go1.18.linux-amd64.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/go /usr/local/bin/go
go version
# go version go1.18 linux/amd64

2、安装依赖

#  安装依赖
yum install -y \
  btrfs-progs-devel \
  containernetworking-plugins \
  containers-common \
  crun \
  device-mapper-devel \
  glib2-devel \
  glibc-devel \
  glibc-static \
  golang-github-cpuguy83-md2man \
  gpgme-devel \
  iptables \
  libassuan-devel \
  libgpg-error-devel \
  libseccomp-devel \
  libselinux-devel \
  make \
  pkgconfig

3、安装conmon 和 runc

# conmon是用C语言编写的工具,用于单个容器的管理器
wget https://github.com/containers/conmon/archive/refs/tags/v2.1.0.tar.gz
tar xf v2.1.0.tar.gz
cd conmon-2.1.0/
export GOCACHE="$(mktemp -d)"
make
make podman
#install  -D -m 755 bin/conmon /usr/local/libexec/podman/conmon
conmon --version
#conmon version 2.0.8
#commit: f85c8b1ce77b73bcd48b2d802396321217008762

# runc是golang写的关于CLI工具,用于根据OCI规范在 Linux上生成和运行容器
wget https://github.com/opencontainers/runc/releases/download/v1.1.1/runc.amd64
chmod +x runc.amd64
mv runc.amd64 /usr/local/bin/runc
/usr/local/bin/runc -version
#runc version 1.1.1
#commit: v1.1.0-20-g52de29d7
#spec: 1.0.2-dev
#go: go1.17.6
#libseccomp: 2.5.3

四、设置CNI网络

mkdir /etc/containers
wget https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
wget https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json
cp default-policy.json /etc/containers/default-policy.json
cp registries.conf /etc/containers/registries.conf
# 默认情况下,CNI网络配置文件下载好后,无需配置,即可使用 podman
# registries.conf: 容器镜像注册配置文件,文件格式为 TOML
# policy.json:证书安全策略文件,文件格式为 JSON

五、安装podman

wget https://github.com/containers/podman/archive/refs/tags/v3.4.4.tar.gz
tar xf v3.4.4.tar.gz
cd podman-3.4.4/
make BUILDTAGS="selinux seccomp"
# git clone -- https://github.com/cpuguy83/go-md2man /root/go/src/github.com/cpuguy83/go-md2man 超时问题
vim Makefile
####
# 800行 github.com/cpuguy83/go-md2man 改为
gitee.com/mirrors/go-md2man
####
# 再次make
make BUILDTAGS="selinux seccomp"
make install PREFIX=/usr
# 会自动在usr的bin、lib、share 中 创建相关内容
podman --version
# podman version 3.4.4
podman version
#Version:      3.4.4
#API Version:  3.4.4
#Go Version:   go1.18
#Built:        Wed Jun 29 15:51:56 2022
#OS/Arch:      linux/amd64

三、CentOS 9 安装 1、安装默认版本

sudo dnf -y install podman

版本查看

podman version



发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接