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

Debian11にDockerの代替としてPodmanをインストールする方法

Podman(POD MANager)は、Dockerのドロップイン代替としてRedHatによって開発されたOCI準拠のコンテナーエンジンです。コマンドラインインターフェイスを介して、コンテナ、イメージ、およびボリュームを管理および実行するために使用されます。 DockerとPodmanはどちらも同様のソフトウェアです。唯一の違いは、Podmanはコンテナを実行するためにデーモンを必要としないのに対し、DockerはDockerEngineデーモンを必要とすることです。 Podmanは、libpodライブラリを使用してコンテナエコシステム全体を管理します。

このチュートリアルでは、Debian11にPodmanをインストールして使用する方法を紹介します。

前提条件
  • Debian11を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
ポッドマンをインストール

Podmanパッケージは、Debian11のデフォルトリポジトリに含まれています。次のコマンドを実行するだけでインストールできます:

apt-get install podman -y

Podmanをインストールしたら、以下のコマンドを使用してPodmanのバージョンを確認します。

podman --version

次の出力にPodmanバージョンが表示されます。

podman version 3.0.1

次のコマンドを使用して、Podmanの詳細情報を取得できます。

podman info

次の出力が得られます:

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: 'conmon: /usr/bin/conmon'
    path: /usr/bin/conmon
    version: 'conmon version 2.0.25, commit: unknown'
  cpus: 2
  distribution:
    distribution: debian
    version: "11"
  eventLogger: journald
  hostname: debian11
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.10.0-8-amd64
  linkmode: dynamic
  memFree: 3365183488
  memTotal: 4122267648
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version 0.17
      commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: true
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: false

OCIレジストリを追加

Podmanは、レジストリ構成ファイル/etc/containers/registries.confを使用して、インターネットからすべてのコンテナーイメージをプルします。したがって、それを編集してレジストリを定義する必要があります:

nano /etc/containers/registries.conf

ファイルの最後に次の行を追加します。

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

終了したら、ファイルを保存して閉じます。

ポッドマンの使用方法

このセクションでは、Podmanコマンドを使用して画像をプルし、コンテナを実行する方法を示します。

Debianイメージをプルするには、次のコマンドを実行します:

podman pull debian

次の出力が得られます:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

次のコマンドを使用して、ダウンロードした画像を表示できます。

podman images

次の出力が得られます:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB

次に、次のコマンドを使用して、Debianイメージからコンテナを実行します。

podman run -dit debian:latest

次の出力が得られます:

f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103

次のコマンドを使用して、実行中のすべてのコンテナを一覧表示できます。

podman ps

次の出力が表示されます。

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori

実行中のコンテナを検査するには、コンテナIDを指定してPodmanコマンドを実行します。

podman inspect f85c4df5ab78

次の出力が得られます:

[
    {
        "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103",
        "Created": "2021-11-28T07:00:12.795302341Z",
        "Path": "bash",
        "Args": [
            "bash"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6881,
            "ConmonPid": 6878,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-28T07:00:13.551753552Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },

コンテナログを確認するには、次のコマンドを実行します。

podman logs f85c4df5ab78

実行中のコンテナに接続する場合は、次のコマンドを実行します。

podman exec -it f85c4df5ab78 /bin/bash

以下に示すように、コンテナシェルに入ります:

[email protected]:/#

コンテナシェルを終了するには、次のコマンドを実行します。

[email protected]:/# exit
コンテナを停止して削除する方法

Podmanを使用して、コンテナを開始、停止、および削除することもできます。

実行中のコンテナーを停止するには、次のコマンドを実行します。

podman stop f85c4df5ab78

これで、次のコマンドを使用して、停止したコンテナを確認できます。

podman ps -a

次の出力が表示されます。

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS                       PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     3 minutes ago  Exited (137) 10 seconds ago          competent_cori

停止したコンテナを削除するには、次のコマンドを実行します。

podman rm f85c4df5ab78

最新のコンテナを停止する場合は、次のコマンドを実行します。

podman stop --latest

最新のコンテナを起動するには、次のコマンドを実行します。

podman start --latest

最新のコンテナを削除するには、次のコマンドを実行します。

podman rm --latest

実行中のすべてのコンテナーを削除するには、次のコマンドを実行します。

podman rm -f `podman ps -aq`

画像を削除するには、次のコマンドを実行します。

podman rmi 827e5611389a

次の出力が得られます:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc
結論

上記の投稿では、Debian 11にPodmanをインストールして使用する方法を説明しました。これで、Dockerの代わりにPodmanを使用して、コンテナーを実行および管理できるようになりました。


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

  2. Debian11にDockerの代替としてPodmanをインストールする方法

  3. Debian11にWildFlyをインストールする方法

  1. Debian10BusterにDockerをインストールする方法

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

  3. DockerEngineをDebian11にインストールする方法

  1. PHP8をDebian11にインストールする方法

  2. Debian11にGitLabをインストールする方法

  3. Debian11にDockerをインストールする方法