GNU/Linux >> Linux の 問題 >  >> Debian

Debian11にPodmanをインストールする方法

RedHatによって開発されたPodmanは、人気のあるDockerランタイムエンジンのドロップイン代替品として設計された、無料のオープンソースのデーモンレスコンテナエンジンです。 Dockerと同様に、コンテナーイメージとOCIコンテナーを使用してアプリケーションを簡単に構築、実行、デプロイ、共有できます(Open Container Initiative)。 Podmanはユーザーとネットワークの名前空間を使用します。Dockerと比較して、Podmanはより分離された安全であると見なされます。 DockerのほとんどのコマンドはPodmanで動作します。したがって、Dockerコマンドの実行に精通している場合は、podmanを使用するのはとても簡単です。

このガイドでは、 podmanのインストール方法を学びます Debian 11 ブルズアイ。

Debian11にPodmanをインストールする

podmanパッケージ、ライブラリ、および依存関係は、公式のDebianリポジトリですでにホストされています。したがって、APTパッケージマネージャーを使用してpodmanを簡単にインストールできます。

まず、パッケージリストを更新します:

$ sudo apt update

次に、次のようにpodmanコンテナエンジンをインストールします。

$ sudo apt install podman

続行するように求められたら、「Y」と入力してEnterキーを押します。

インストールされているPodmanのバージョンを確認するには、次のコマンドを実行します。

$ podman --version

podmanコンテナエンジンの詳細を収集するには、次のコマンドを実行します:

$ sudo podman info

以下のような複雑な詳細を表示する出力が急増するはずです。

Podmanレジストリを構成する

レジストリファイルregistry.conf は、イメージをプッシュまたはプルするときに使用するコンテナレジストリを指定する構成ファイルです。ファイルへのフルパスは/etc/containers/registries.confです。 。 Dockerハブ、Quay.io、RedHatなど、さまざまなコンテナレジストリがあります。

図のようにテキストエディタを使用してファイルを表示できます

# sudo /etc/containers/registries.conf

Dockerでは、コンテナレジストリはDockerHubのみです。 Podmanは、ユーザーが任意のレジストリから画像を検索およびプルするためのより多くの自由を提供します。次の行を追加することで、コンテナレジストリのリストを定義できます。

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

podman searchを実行する場合 またはpodman pull コマンドを実行すると、podmanはこれらのレジストリに最初のレジストリから順番に連絡します。変更を保存してファイルを終了します。

画像の検索

コンテナイメージをプルする前に、さまざまなレジストリでそれらの可用性を検索するのが賢明です。

$ sudo podman search nginx

出力には、レジストリ名、画像名、簡単な説明など、豊富な情報が表示されます。

レジストリへのログイン

イメージのプルまたはプッシュを開始する前に、レジストリにログインする必要があります。以下の例では、Redhatアカウントにログインしています。これにより、実際にはレジストリにアクセスできます。

$ sudo podman login registry.access.redhat.com

レジストリからログアウトするには、次のコマンドを実行します。

$ sudo podman logout registry.access.redhat.com

画像のプル

画像をプルするには、次の構文を使用します:

$ sudo podman pull image_name

たとえば、Nginxの公式ビルドイメージをプルするには、次のコマンドを実行します:

$ sudo podman pull docker.io/library/nginx

別の画像を引っ張ってみましょう。次のように公式のMongoDBイメージをプルします。

$ sudo podman pull docker.io/library/mongo

画像の一覧表示

すべての画像を一覧表示するには、コマンドを発行します。

$ sudo podman images

画像からコンテナを作成する

これで、Debianシステム上にイメージが存在するようになったので、示されている構文を使用してコンテナーを起動できます。 -dオプションは、コンテナをバックグラウンドで実行し、--name オプションは、コンテナのカスタム名を指定します

$ sudo podman run -d  --name container_name  image

たとえば、Nginxイメージからwebserv1というバックグラウンドでコンテナを起動するには、次のコマンドを実行します。

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

同じイメージから複数のコンテナを起動できます。同じNginxイメージからwebserv2という別のコンテナを起動してみましょう。

$ sudo podman run -d --name webserv2  docker.io/library/nginx

コンテナの一覧表示

このセクションでは、コンテナで使用できるさまざまなコマンドについて説明します。

現在実行中のコンテナを確認するには、次のコマンドを発行します。

$ sudo podman ps

出力は、コンテナID、IMAGE名、コンテナを実行しているコマンド、作成日、ステータスなどの情報を提供する列に表示されます。

実行を終了したコンテナを含むすべてのコンテナを一覧表示するには:

$ sudo podman ps -a

コンテナの停止

コンテナを停止するには、構文を使用します

$ sudo podman stop CONTAINER_ID

または

$ sudo podman stop container_name

以下の例では、コンテナIDを使用してリストされた最初のコンテナを停止しました

$ sudo podman stop 9daeaabdfdfc

podman psを使用して、コンテナが停止したことを確認できます 指図。画像を停止した後、実行中の画像は1つだけであることがはっきりとわかります。

podman ps -a コマンドは、停止されたばかりのコンテナを構成する両方のコンテナを一覧表示します。

$ sudo podman ps -a

コンテナの起動

コンテナを開始するには、次の構文を使用します:

$ sudo podman start CONTAINER_ID

または

$ sudo podman start container_name

たとえば、webserv1を起動するには、次のコマンドを実行します。

$ sudo podman start webserv1

コンテナのシェルにアクセスする

コンテナのシェルへのアクセスは、オペレーティングシステムのコンテナを使用して最もよく示されます。

ここでは、Ubuntuイメージをダウンロードまたはプルします:

$ sudo podman pull docker.io/library/ubuntu

イメージから、コンテナを作成または起動し、-itを使用してシェルにアクセスします。 オプション。

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i、–interactive接続されていない場合でもSTDINを開いたままにします
  • -t、–tty疑似TTYを割り当てます。デフォルトはfalseです

コンテナのログを確認する

コンテナのログを確認するには、次の構文を使用します。

$ sudo podman logs container_name

例:

$ sudo podman logs webserv2

コンテナ統計を表示する

実行中のすべてのコンテナーの統計を表示するには、次を実行します。

$ sudo podman stats

コンテナの検査

コンテナに関する複雑な詳細を印刷するには、検査オプションを使用します。

$ sudo podman inspect webserv2

これにより、長い出力がJSON形式で出力されます。

--formatオプションを使用して、出力をフィルタリングします。たとえば、webserv2コンテナ実行のIPアドレスを出力するには

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

次に、たとえばcurlを使用してHTTPヘッダーを取得するなど、IPで追加情報を実行できます。

$ curl -I ip-address

コンテナの削除

コンテナを完全に削除または削除するには、実行中の場合は最初にコンテナを停止し、最後にコンテナを削除します。この例では、websev1コンテナを停止して削除しました。

$ sudo podman stop webserv1

次に、停止したコンテナを削除します。

$ sudo podman rm webserv1

画像の削除

イメージを削除するには、まず、イメージから起動されたすべてのコンテナーを停止して削除したことを確認します。次に、rmiを使用します 示されているオプション。

$ sudo podman rmi image_name

たとえば、ubuntuイメージを削除するには、次のコマンドを実行します。

$ sudo podman rmi  docker.io/library/ubuntu

最新のPodmanをインストールする-ソースからコンパイルする

ソースから開発バージョンをインストールすることで、Podmanの最新バージョンをテストできます。

01.依存関係の構築と実行

sudo apt-get install \
   btrfs-progs \
   git \
   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 \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02.Conmonをインストールする

conmonは、コンテナの主要なプロセスを監視することを目的とした小さなCプログラムであるコンテナモニターです。

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03.runcをインストールします

runcの最新バージョンをインストールするには

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

03. Container Network Interface(CNI)をインストールする

CNIプラグインは、ネットワークインターフェイスをコンテナネットワーク名前空間に挿入するために使用されます。

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

ネットワークを設定する

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

構成を追加する

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04.ソースからPodmanをインストールする

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

結論

podmanを使用してコンテナーを作成および管理することで、より優れたプロになるための確かな基盤が提供されたことを願っています。このガイドでは、Debian11Busterへのpodmanのインストールについて説明しました。


Debian
  1. Debian 10(バスター)のインストール方法

  2. Python3.9をDebian10にインストールする方法

  3. Debian10にTeamViewerをインストールする方法

  1. Debian10にMemcachedをインストールする方法

  2. Debian9にGitをインストールする方法

  3. Debian9にGoをインストールする方法

  1. Debian9にPipをインストールする方法

  2. Debian9にRをインストールする方法

  3. Debian9にRubyをインストールする方法