インストール - Podman
概要
コンテナとは、ソフトウェアプロセスやマイクロサービスをパッケージ化して、あらゆるコンピューティング環境で実行可能にするソフトウェアソリューションである。
コンテナに含まれるファイルには、アプリケーションコード、環境変数、設定コード、バイナリプログラム、ソフトウェアの依存関係、ライブラリ等がある。
これらのコンポーネントをバンドルするプロセスはコンテナ化と呼ばれ、最終的な製品はコンテナイメージとして知られている。
このイメージは、クラウド、オンプレミスのデータシステム、ローカルシステム等、あらゆるプラットフォームにデプロイされる。
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のインストールディレクトリ>