Podmanは、コンテナー、イメージ、ボリューム、およびポッド(コンテナーのグループ)を管理するためのオープンソースツールです。コンテナのライフサイクルを管理するためにlibpodライブラリAPIを使用し、OCI(Open Container Initiative)やDockerイメージなどの複数のコンテナイメージ形式をサポートしています。
Podmanは、OCI(Open Container Initiative)コンプライアンスコンテナエンジンです。 Docker CLIインターフェースと互換性があり、コンテナーをrootなしで実行できます(root権限なしでコンテナーを実行します)。 PodmanはRedHatEnterprise Linuxの一部としてリリースされ、機能の実験と開発が高速化された次世代のLinuxコンテナツールとなるように設計されています。
このチュートリアルでは、Ubuntu20.04システムにPodmanをインストールする方法を学習します。 Podmanをインストールし、Dockerコンテナー、イメージ、およびボリュームを管理するためのpodmanの基本的な使用法を学習します。
- Ubuntu20.04サーバー -非推奨の依存関係を取り除き、インストール中にエラーが発生するように、すべてのパッケージが最新バージョンであることを確認してください。
- root権限を持つユーザー 、またはユーザーroot -新しいパッケージをインストールし、システム全体の構成を変更するため。
Ubuntu20.04へのPodmanのインストール
最初に、Ubuntu20.04システムにpodmanをインストールするためのサードパーティのリポジトリとキーを追加します。
1.次のコマンドを実行して、' / etc / os-releaseの環境変数をエクスポートします。 'ファイル。
. /etc/os-release
2.安定したリリースのpodmanリポジトリを追加し、以下のコマンドを使用してGPGキーをシステムに追加します。
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -
3. Ubuntuリポジトリを更新/更新し、すべてのパッケージを最新バージョンにアップグレードします。
sudo apt update
sudo apt -y upgrade
4.その後、以下のaptコマンドを使用してpodmanをインストールします。
sudo apt install podman
' yと入力します 'を押して'Enter 'インストールを続行します。
5.インストールが完了したら、次のコマンドを使用してpodmanのバージョンを確認します。
podman version
以下は、得られる同様の出力です。
ご覧のとおり、Linuxアーキテクチャamd64(64ビット)用にGo1.16でコンパイルされたpodmanv3.3.1をインストールしました。
Podmanを使用すると、root権限なしでユーザーの下でコンテナーを実行できます。この段階では、新しいユーザーを追加し、Dockerイメージに基づいてコンテナー「hello-world」を実行します。
1.次のコマンドを実行して、新しいユーザー「johndoe」を追加します。
useradd -m -s /bin/bash johndoe
passwd johndoe
ユーザー'johndoeの新しいパスワードを入力します '。
2.次に、ユーザー「johndoe」としてログインし、Dockerイメージ「hello-world」に基づいてコンテナーを実行します。
ユーザーとしてログイン'johndoe '。
su - johndoe
Dockerイメージに基づいて新しいコンテナーを実行します'hello-world 'podmanコマンドを使用します。
podman run hello-world
使用するコンテナレジストリを尋ねられたら、「docker.io」コンテナレジストリを選択すると、以下のような出力が表示されます。
3.ローカルマシンでコンテナとイメージを確認するには、以下のコマンドを実行します。
podman ps -a
podman images
新しいコンテナが作成され、現在のステータスが「終了」になっていることがわかります。 '。コンテナは「hello-world」に基づいています 'Dockerイメージ。
このガイドでは、podmanを使用してコンテナー、イメージ、およびボリュームを管理する方法を学習します。コンテナを管理するためのpodmanの基本的なコマンドを学習します。このガイドで使用するコマンドは、Docker CLIコマンドと100%同じです。
1. podmanと互換性のあるコンテナイメージを見つけるには、以下のpodmanコマンドを実行します。
podman search nginx
また、デフォルトの Dockerのコンテナイメージのリストが表示されます 画像レジストリとQuay 画像レジストリ。
Dockerレジストリからコンテナイメージ「nginx」を選択し、以下のpodmanコマンドを使用してローカルマシンにダウンロードします。
podman pull nginx:alpine
コンテナレジストリを選択します'docker.io 'そしてNginxコンテナイメージのダウンロードプロセスが開始されます。
2.ローカルマシンで利用可能なコンテナイメージを確認するには、以下のpodmanコマンドを実行します。
podman images
そして、2つの画像が表示されます- hello-world およびnginx 画像。
3.次に、イメージ' nginx:alpineに基づいて新しいコンテナを起動して実行します '、オプション' runを指定してpodmanコマンドを実行します '以下のように。
podman run -it --rm -d -p 8080:80 --name web nginx:alpine
知っておくべきいくつかのオプション:
- -i または-インタラクティブ -接続されていない場合でも、コンテナSTDINを開いたままにします。
- -t または--tty -端末をコンテナのSTDINおよびSTDOUTに接続する疑似端末を割り当てます。
- -rm -コンテナが終了または停止すると、コンテナが自動的に削除されます。
- -d -コンテナをバックグラウンドで実行し、実行後にコンテナをアタッチ解除します。
- -p 8080:80 -コンテナとホストシステム間のポートをマッピングします。コンテナのポート「80」は、ホストシステムのポート「8080」にマップされています。
- -名前のウェブ -新しいコンテナ名を「web」として指定します。
- nginx:alpine -使用する画像は「nginx:alpine」です。
実行中のコンテナのランダムな文字列と番号が表示されます。以下のpodmanコマンドを使用して、実行中のコンテナを確認します。
podman ps
以下のような出力が表示されます。
コンテナのステータスは「アップ」です。 'そしてポートTCPポートを公開します'8080 'ホストマシン上。
Webブラウザを開き、ポート' 8080を使用してサーバーのIPアドレスにアクセスします '以下のように。
http://192.168.1.15:8080/
そして、nginxコンテナのデフォルトの「index.html」年齢が表示されます。
4.さらに、「ログ」を使用してコンテナのログを確認できます 'オプションは以下のとおりです。
podman logs web
または、コンテナログの最後の数直線を「-tail」で指定できます。 'オプションは以下のとおりです。
podman logs --tail 10 web
5.これで、podmanオプション' stopを使用して実行中のコンテナを停止できます。 '以下のように。
podman stop web
コンテナ「web」は停止します。以下のコマンドを使用して確認してください。
podman ps
podman ps -a
そして、以下のような出力が表示されます。
オプション'-rm'を使用しているため、コンテナ'web'は停止され、自動的に削除されます。 podmanコマンドで。
6.次に、カスタムボリュームを使用して、新しいコンテナのデフォルトの「index.html」を変更する方法を学習します。
新しいディレクトリを作成します'〜/ data 'および'index.html '次のコマンドを使用してファイルします。
mkdir -p ~/data/
nano ~/data/index.html
以下のHTMLスクリプトをコピーして貼り付けてください。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Container Nginx</title>
</head>
<body>
<h2>Hello from Nginx container - Managed with Podman</h2>
</body>
</html>
' Ctrl + xを押します 'ボタン、' yと入力します '、次に' Enter '構成を保存して終了します。
次に、次のpodmanコマンドを実行して、カスタムボリュームで新しいコンテナを実行します。
podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
知っておくべきオプション:
- -v -コンテナのボリュームを指定します。 '〜/ data 'ディレクトリは新しいコンテナディレクトリにマウントされます'/ usr / share / nginx / html '。
次のコマンドを実行して、実行中のコンテナを確認します。
podman ps
新しいコンテナ'webが表示されます 'ステータス'アップ '。
次に、Webブラウザを開き、サーバーのIPアドレスをポート' 8080で入力します。 '。
http://192.168.1.15:8080/
そして、作成したカスタムindex.htmlページが一番上に表示されます。これは、「〜/ data」を意味します。 'ディレクトリは'ウェブにマウントされます 'コンテナ。
7.次に、オプション' execを使用して実行中のコンテナにログインできます。 'および'sh'シェルを実行します。
コンテナのウェブを確認してください 'は次のコマンドを使用して実行されています。
podman ps
次に、以下のpodmanコマンドを実行して、コンテナ「web」にログインします。
podman exec -it web /bin/sh
コンテナ「web」のホスト名を確認してください。
hostname
コンテナ「web」のIPアドレスとルーティングテーブルを確認してください。
ip a
route -n
次に、「 exit」と入力します 'コンテナからログアウトするには'web '。
8.次のコマンドを使用して、環境をクリーンアップします。
コンテナを停止します'ウェブ '以下のpodmanコマンドを使用します。
podman stop web
以下のpodmanコマンドを使用して、ステータスが「終了」のすべてのコンテナを削除します。
podman rm $(podman ps --filter "status=exited" -q)
おめでとうございます!これで、Ubuntu20.04システムにPodmanが正常にインストールされました。また、コンテナイメージをダウンロードし、コンテナを実行し、コンテナのステータス、ログを確認するためのpodmanの基本的な使用法、およびボリュームを管理するためのpodmanの基本的な使用法を学習しました。次のステップでは、アプリケーションのOCI仕様を使用してカスタムイメージを作成し、コンテナレジストリにプッシュ/アップロードすることができます。