インストール - Podman

提供:MochiuWiki : SUSE, EC, PCB
2024年2月3日 (土) 05:39時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == コンテナとは、ソフトウェアプロセスやマイクロサービスをパッケージ化して、あらゆるコンピューティング環境で実行可能にするソフトウェアソリューションである。<br> <br> コンテナに含まれるファイルには、アプリケーションコード、環境変数、設定コード、バイナリプログラム、ソフトウェアの依存関係、ライブラリ等がある。<br>…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

コンテナとは、ソフトウェアプロセスやマイクロサービスをパッケージ化して、あらゆるコンピューティング環境で実行可能にするソフトウェアソリューションである。

コンテナに含まれるファイルには、アプリケーションコード、環境変数、設定コード、バイナリプログラム、ソフトウェアの依存関係、ライブラリ等がある。
これらのコンポーネントをバンドルするプロセスはコンテナ化と呼ばれ、最終的な製品はコンテナイメージとして知られている。

このイメージは、クラウド、オンプレミスのデータシステム、ローカルシステム等、あらゆるプラットフォームにデプロイされる。

Podman (Pod Manage) は、Open Container Initiatives (OCI) のコンテナイメージを開発、管理、本番環境で実行する時に使用するコンテナエンジンである。
OCIは、コンテナフォーマットとランタイムに関するOSレベルの仮想化ソフトウェアコンテナのオープンなガバナンス構造を実装するために設計された。

Podmanコンテナは、スーパユーザ / 非スーパーユーザのいずれでも実行可能である。


Podmanのインストール

パッケージ管理システムからインストール

# RHEL
sudo dnf install 

# SUSE
sudo zypper install podman


ソースコードからインストール

Goのバージョンが1.16未満の場合

もし、パッケージ管理システムのGoのバージョンが1.16未満の場合は、Goの公式Webサイトにアクセスして、Goをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf go<バージョン>.linux-<アーキテクチャ名>.tar.gz
mv go<バージョン>.linux-<アーキテクチャ名> Go


必要ならば、Goを任意のインストールディクトリに配置する。

mv Go <任意のインストールディレクトリ>


~/.profileファイル等に、環境変数PATHを追記する。

 export GOPATH=<Goのインストールディレクトリ>
 export PATH=/<Goのインストールディレクトリ>/bin:$PATH


最新のconmonが必要な場合

最新バージョンのconmonがシステムにインストールされていることが期待される。
conmonは、OCIランタイムをモニタリングするために使用される。

conmonのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf conmon-<バージョン>.tar.gz
cd conmon-<バージョン>


または、git cloneコマンドを実行して、ソースコードをダウンロードする。

git clone https://github.com/containers/conmon
cd conmon


conmonをビルドおよびインストールする。

export GOCACHE="$(mktemp -d)"

make -j $(nproc)
make podman


Podmanのビルド

Podmanのビルドに必要なライブラリをインストールする。

# RHEL
sudo dnf install 'dnf-command(builddep)'
sudo dnf builddep rpm/podman.spec --enablerepo=codeready-builder-for-rhel-$(rpm --eval %{?rhel})-$(uname -m)-rpms

sudo dnf install conmon containers-common crun iptables netavark nftables slirp4netns

# SUSE
sudo zypper install libseccomp-devel libgpgme-devel

# Raspberry Pi
sudo apt install btrfs-progs git uidmap pkg-config crun golang-go go-md2man iptables libassuan-dev libbtrfs-dev libc6-dev libdevmapper-dev libglib2.0-dev \
                 libgpgme-dev libgpg-error-dev libprotobuf-dev libprotobuf-c-dev libseccomp-dev libselinux1-dev libsystemd-dev libapparmor-dev \
                 netavark  # 古いバージョンのRaspbian OSの場合、netavarkパッケージが利用できない場合がある
                           # その場合、containernetworking-pluginsパッケージをインストールする


Linuxカーネルがユーザネームスペースをサポートしていることを確認する。

zgrep CONFIG_USER_NS /proc/config.gz

# 出力例:
CONFIG_USER_NS=y


PodmanのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf podman-<バージョン>.tar.gz
cd podman-<バージョン>


または、git cloneコマンドを実行して、Podmanのソースコードをダウンロードすることもできる。

git clone git clone https://github.com/containers/podman/
cd podman


Podmanをビルドおよびインストールする。

make BUILDTAGS="selinux seccomp" PREFIX=<Podmanのインストールディレクトリ> -j $(nproc)
make install PREFIX=<Podmanのインストールディレクトリ>