Podman 安装

Podman 安装

文章目录

  • Podman 安装
    • 简介
    • 1. dnf 安装
    • 2. yum 安装
    • 3. apt-get 安装
    • 4. 源码安装
      • 4.1 安装依赖
      • 4.2 安装 Git
      • 4.3 Go 编译环境安装和配置
      • 4.4 安装 conmon
    • 5. 官方安装

简介

Podman(全称 POD 管理器)是一款用于在 Linux® 系统上开发、管理和运行容器的开源工具。Podman 最初由红帽® 工程师联合开源社区一同开发,它可利用 lipod 库来管理整个容器生态系统。

Podman 采用无守护进程的包容性架构,因此可以更安全、更简单地进行容器管理,再加上 Buildah 和 Skopeo 等与之配套的工具和功能,开发人员能够按照自身需求来量身定制容器环境。 它与Docker扮演相同的角色,并且在很大程度上与 Docker 兼容,提供几乎相同的命令。

1. dnf 安装

第一种方式

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
dnf update
dnf upgrade
dnf install -y epel-release

dnf 命令详细 请参考 centos 8.2 指南与Linux Command Dnf 包管理工具

$ dnf --showduplicates list podman
Last metadata expiration check: 0:06:19 ago on Fri 18 Nov 2022 10:24:42 AM CST.
Available Packages
podman.x86_64                                        3.3.1-9.module_el8.5.0+988+b1f0b741                                        appstream

$  dnf --showduplicates list buildah
Last metadata expiration check: 0:07:03 ago on Fri 18 Nov 2022 10:24:42 AM CST.
Available Packages
buildah.x86_64                                       1.22.3-2.module_el8.5.0+911+f19012f9                                       appstream

$ dnf install podman skopeo buildah

第二种方式

sudo dnf config-manager --set-enabled powertools
sudo dnf -y update
$ sudo dnf module list | grep container-tools
container-tools      rhel8 [d][e]     common [d]                               Most recent (rolling) versions of podman, buildah, skopeo, runc, conmon, runc, conmon, CRIU, Udica, etc as well as dependencies such as container-selinux built and tested together, and updated as frequently as every 12 weeks.

$ sudo dnf install -y @container-tools    

$ podman version
Client:       Podman Engine
Version:      4.0.2
API Version:  4.0.2
Go Version:   go1.17.7

Built:      Sun May 15 19:45:11 2022
OS/Arch:    linux/amd64

配置podman别名为docker

$ vim  /root/.bashrc
alias docker='podman'
$ source /root/.bashrc
$ docker info

2. yum 安装

yum update
yum install epel-release
yum install -y podman

3. apt-get 安装

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/testing/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:testing.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:testing/x${NAME}_${VERSION_ID}/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update -qq
sudo apt-get -qq -y install podman
$ sudo apt-get  install podman

4. 源码安装

4.1 安装依赖

sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet lrzsz jq expat-devel openssl-devel

or

sudo dnf -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet lrzsz jq expat-devel openssl-devel

4.2 安装 Git

低版本的 Git 不支持--unshallow 参数,而 go get 在安装 Go 包时会用到 git fetch --unshallow 命令,因此我们要确保安装一个高版本的 Git,具体的安装方法如下:

$ cd /tmp
$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz
$ tar -xvzf git-2.38.1.tar.gz
$ cd git-2.38.1/
$ ./configure
$ make
$ sudo make install
$ git --version          # 输出 git 版本号,说明安装成功
git version 2.38.1

意啦,按照上面的步骤安装好之后,我们要把 Git 的二进制目录添加到 PATH 路径中,不然 Git 可能会因为找不到一些命令而报错。你可以通过执行以下命令添加目录:


tee -a $HOME/.bashrc <<'EOF'
# Configure for git
export PATH=/usr/local/libexec/git-core:$PATH
EOF

配置 Git

git config --global user.name "ghostwritten"    # 用户名改成自己的
git config --global user.email "[email protected]"    # 邮箱改成自己的
git config --global credential.helper store    # 设置 Git,保存用户名和密码
git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误

除了按照上述步骤配置 Git 之外,我们还有几点需要注意。

首先,在 Git 中,我们会把非 ASCII 字符叫做 Unusual 字符。这类字符在 Git 输出到终端的时候默认是用 8 进制转义字符输出的(以防乱码),但现在的终端多数都支持直接显示非 ASCII 字符,所以我们可以关闭掉这个特性,具体的命令如下:

git config --global core.quotepath off

其次,GitHub 限制最大只能克隆 100M 的单个文件,为了能够克隆大于 100M 的文件,我们还需要安装 Git Large File Storage,安装方式如下:

git lfs install --skip-repo

好啦,现在我们就完成了依赖的安装和配置。

4.3 Go 编译环境安装和配置

安装 Go 语言相对来说比较简单,我们只需要下载源码包、设置相应的环境变量即可。首先,我们从 Go 语言官方网站下载对应的 Go 安装包以及源码包,这里我下载的是 go1.18.3 版本:

wget -P /tmp/ https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz

接着,我们完成解压和安装,命令如下:

mkdir -p $HOME/go
tar -xvzf /tmp/go1.18.3.linux-amd64.tar.gz -C $HOME/go
mv $HOME/go/go $HOME/go/go1.18.3

接着,我们执行以下命令,将下列环境变量追加到$HOME/.bashrc 文件中。

tee -a $HOME/.bashrc <<'EOF'
# Go envs
export GOVERSION=go1.18.3 # Go 版本设置
export GO_INSTALL_DIR=$HOME/go # Go 安装目录
export GOROOT=$GO_INSTALL_DIR/$GOVERSION # GOROOT 设置
export GOPATH=$WORKSPACE/golang # GOPATH 设置
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH # 将 Go 语言自带的和通过 go install 安装的二进制文件加入到 PATH 路径中
export GO111MODULE="on" # 开启 Go moudles 特性
export GOPROXY=https://goproxy.cn,direct # 安装 Go 模块时,代理服务器设置
export GOPRIVATE=
export GOSUMDB=off # 关闭校验 Go 依赖包的哈希值
EOF
$ bash
$ go version
go version go1.18.3 linux/amd64

最后,初始化工作区。使用的 Go 版本为 go1.18.3go1.18.3 支持多模块工作区,所以这里也需要初始化工作区。初始化命令如下:

$ mkdir -p $GOPATH && cd $GOPATH
$ go work init
$ go env GOWORK # 执行此命令,查看 go.work 工作区文件路径
/home/going/workspace/golang/go.work

4.4 安装 conmon

conmon[2]是用C编写的,设计为具有较低的内存占用。conmon是容器管理器(如Podman或CRI-O)和单个容器的OCI运行时(如runc或crun)之间的监控程序和通信工具。

当容器运行时,conmon做两件事:

  1. 提供一个套接字,用于连接到容器、保持打开容器的标准流并通过套接字转发它们。
  2. 将容器流的内容写入日志文件(或systemd日志),以便在容器死亡后读取。

最后,当容器死亡时,conmon将记录其退出时间和代码,以供管理程序读取。

git clone https://github.com/containers/conmon
cd conmon
export GOCACHE="$(mktemp -d)"
make
sudo make podman 

5. 官方安装

  • Podman 官方安装

你可能感兴趣的:(podman,linux,centos,运维,容器,redhat)