GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 20.04にPodman(Docker Alternative)をインストールして使用する方法

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をインストールしました。

新しいユーザーを作成してhello-worldコンテナを実行する

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仕様を使用してカスタムイメージを作成し、コンテナレジストリにプッシュ/アップロードすることができます。


Ubuntu
  1. Ubuntu20.04にDockerをインストールして使用する方法

  2. Ubuntu20.04にWineをインストールして使用する方法

  3. Ubuntu20.04にDockerをインストールして使用する方法

  1. Ubuntu18.04にDockerをインストールして使用する方法

  2. Ubuntu18.04にDockerComposeをインストールして使用する方法

  3. Ubuntu18.04にFFmpegをインストールして使用する方法

  1. Ubuntu18.04にWineをインストールして使用する方法

  2. Ubuntu18.04にCurlをインストールして使用する方法

  3. Ubuntu20.04にCurlをインストールして使用する方法