GNU/Linux >> Linux の 問題 >  >> Fedora

Fedora34/35にPodmanをインストールして使用する方法

Podmanは、Dockerコマンドラインと同様のエクスペリエンスを提供することでBuildahとSkopeoを補完します。つまり、ユーザーがスタンドアロンの(オーケストレーションされていない)コンテナーを実行できるようにします。また、Podmanはコンテナやポッドを実行するためにデーモンを必要としないため、大きな太ったデーモンに簡単に別れを告げることができます。バックグラウンドで処理を行うデーモンはありません。これは、Podmanを systemdを介してシステムサービスに統合できることを意味します。 。

このガイドでは、PodmanをFedoraにインストールする方法を学びます。

関連記事

  • Debian11にPodmanをインストールして使用する方法
  • Rocky Linux / Alma Linux /Centos8にPodmanをインストールして使用する方法
  • OpenSUSELeap15.3でPodmanをインストールして使用する方法
  • Rocky Linux /Centos8でdockerをインストールして構成する方法
  • Dockerの使用を開始する例を使用して作成する
  • ビルドエージェントとしてのDocker–DockerでJenkinsビルドを実行する

前提条件

フォローするには、次のものがあることを確認してください。

  • 更新されたFedoraサーバー/ワークステーション
  • rootアクセスまたはsudoアクセスを持つユーザー
  • インターネットへのアクセス

目次

  1. サーバーが最新であることを確認する
  2. podmanのインストール
  3. コマンドラインの例
  4. Runapostgres永続コンテナ
  5. systemdとPodmanを介したシステムサービスとしてのコンテナの管理

1。サーバーが最新であることを確認する

このコマンドを使用して、サーバーパッケージが更新されていることを確認します

  sudo dnf update -y  

共通のパッケージがインストールされていることを確認しましょう

  sudo dnf install -y vim  

2。 Podmanのインストール

Podmanは、Fedoraのデフォルトのリポジトリーで利用できます。次のコマンドを使用してインストールします:

  sudo dnf install -y podman  

このコマンドは、Podmanとその依存関係をインストールします。

それで全部です。これで、Podmanで遊ぶことができます。

3。コマンドラインの例

podmanを使用してRockyLinuxContainerを実行する方法を見てみましょう。

Dockerでは、次のコマンドを使用してRockyLinuxコンテナーを実行します。

 docker run -it fedora:35 sh 

docker がないため、これは失敗します 私のFedoraマシンのコマンド。 Dockerをpodmanに置き換えることができます:

  podman run -it fedora:35 sh  

いくつかのコマンドを実行して、期待どおりに機能していることを確認しましょう。

  $ podman run -it fedora:35 shResolved "fedora" as a alias(/etc/containers/registries.conf.d/000-shortnames.conf)registry.fedoraproject.org/fedoraをプルしようとしています: 35...イメージソース署名の取得blob791199e77b3dのコピーdoneCopyingconfig1b52edb081doneマニフェストのイメージ宛先への書き込みsignaturessh-5.1#whoamirootsh-5.1#exitexitの保存 

コンテナのステータスを確認するには、 podman psを使用します コマンド

  $ podman ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEScd8f63c2e3f2 Registry.fedoraproject.org/fedora:35 sh 50秒前終了(0)17秒前musing_ishizaka  

コンテナを削除するには、 podman rmを使用します :

  $ podman rm cd8f63c2e3f2cd8f63c2e3f2fe5799d619104522892fca3ada2d3a5b7e4601648ac0de20cb89  

画像を一覧表示するには:

  $ podman imagesREPOSITORY TAG IMAGE ID CREATED SIZEregistry.fedoraproject.org/fedora 351b52edb0818111日前159MB 

画像podmanimage rmを使用して画像を削除できます コマンド:

  $ podman image rm fedoraUntagged:registry.fedoraproject.org/fedora:35Deleted:1b52edb0818147bea39780625ec01ab46944284acf16d8bcfa4055f8a854a9f5  

上記から、podmancommandnがdockerと同じ構文を使用していることを確認できます

4。 Postgres永続コンテナを実行する

次に、永続コンテナーを実行する方法を調べてみましょう。この例では、Postgres 14コンテナーを実行し、postgresデータをローカルボリュームにマウントして、再起動を持続できるようにします。コンテナはエピメラルであるため、ローカルボリュームに保存しないと、データが失われます。

docker.io / library / postgres:14.0-alpineをプルします 画像

  $ podman pulldocker.io/library/postgres:14.0-alpinedocker.io/library/postgres:14.0-alpineをプルしようとしています...イメージソース署名の取得blobのコピー3da258773353doneコピーblob5034a66b99e6doneコピーblob82e9eb77798bdoneコピーblob a0d0a0d46f8b doneCopying blob ccd761727716 doneCopying blob c6b2245b2f36 doneCopying blob 028554d3b6cc doneCopying blob 2c7ee7bc69e8 doneCopying config 87440f4e7fdone  

画像を確認する

  $ podman imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/library/postgres 14.0-alpine87440f4e7f9e2週間前198MB 

で画像を検査します
  $ podman inspect  87440f4e7f9e  

コンテナを起動したら、Postgresデータを処理するフォルダを設定しましょう:

  $ mkdir -p〜/ apps / postgres / data  

実行する

  podman run -d \ -p 5432:5432 \ -v〜/ apps / postgres / data:/ var / lib / postgresql / data \ -e POSTGRES_PASSWORD =Sup3rSecre7 \ -e POSTGRES_USER =citizix_user \ -e POSTGRES_DB =citizix_db \ docker.io / library / postgres:14.0-alpine  

これが私の出力です

  $ podman run -d \ -p 5432:5432 \ -v〜/ apps / postgres / data:/ var / lib / postgresql / data \ -e POSTGRES_PASSWORD =Sup3rSecre7 \ -e POSTGRES_USER =citizix_user \- e POSTGRES_DB =citizix_db \ docker.io / library / postgres:14.0-alpinedc5117faeb431c021f54a60e6303707fe7b48aef199fe53b751236eaf2c08136  

プロセスを確認する:

  $ podman psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdc5117faeb43 docker.io/library/postgres:14.0-alpinepostgres9秒前Up9秒前0.0.0.0:5432->5432/ tcp cool_hermann  

これでコンテナログを確認します。 dbを初期化していることがわかります

$podmanログdc5117faeb43| headこのデータベースシステムに属するファイルはユーザー「postgres」が所有します。このユーザーはサーバープロセスも所有している必要があります。データベースクラスターはロケール「en_US.utf8」で初期化されます。したがって、デフォルトのデータベースエンコーディングは「UTF8」に設定されています。 "。デフォルトのテキスト検索構成は"english"に設定されます。データページのチェックサムは無効になります。既存のディレクトリ/var/ lib / postgresql/dataの権限を修正します...ok

データベースに接続して、いくつかの操作を実行しましょう

  $ podman exec -it dc5117faeb43 /bin/bashbash-5.1# psql -U citizix_user -d citizix_db; psql(14.0)help.citizix_db =#select version();の場合は「help」と入力します。バージョン - - - - - - - - - - - - - - - - - - - - - - - - - -------------------------------------------------- -----------x86_64上のPostgreSQL14.0-pc-linux-musl、gcc(Alpine 10.3.1_git20210424)10.3.1 20210424、64ビット(1行)citizix_db =#でコンパイル 

次に、コンテナの強制終了と削除について見ていきましょう。 podman killを使用できます コンテナを停止します。これによりコンテナは停止しますが、引き続き存在します。 podman ps -aを使用します リストする。完全に削除するには、 podman rm -f

  $ podman kill dc5117faeb43dc5117faeb43 $ podman ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESdc5117faeb43 docker.io/library/postgres:14.0-alpine postgres 3分前終了(137)約1分前0.0.0.0:5432 -> 5432 / tcp cool_hermann $ podman rm -f dc5117faeb43dc5117faeb431c021f54a60e6303707fe7b48aef199fe53b751236eaf2c08136  

5。 systemdとPodmanを介したシステムサービスとしてのコンテナの管理

systemdを介してpodmanコンテナを管理できます。 systemdを作成しましょう 上で作成したpostgresコンテナを処理するためのリソースファイル。

postgres podmanファイルを作成します:

  sudo vim /etc/systemd/system/postgres-podman.service  

このコンテンツを追加

  [Unit] Description =Custom Postgres Podman ContainerAfter =network.target [Service] Type =simpleTimeoutStartSec =5mExecStartPre =-/ usr / bin / podman rm -f postgrespodmanExecStart =/ usr / bin / podman run \ -p 5432:5432 \ -v / home / fedora / apps / postgres / data:/ var / lib / postgresql / data \ -e POSTGRES_PASSWORD =Sup3rSecre7 \ -e POSTGRES_USER =citizix_user \ -e POSTGRES_DB =citizix_db \ docker.io / library / postgres:14.0-alpineExecReload =-/ usr / bin / podman stop postgrespodmanExecReload =-/ usr / bin / podman rm postgrespodmanExecStop =-/ usr / bin / podman stop postgrespodmanRestart =alwaysRestartSec =30[インストール] 

次に、 systemdをリロードできます カタログを作成してサービスを開始します:

  sudo systemctl daemon-reloadsudo systemctl start postgres-podman  

サービスステータスの確認

  $ sudo systemctlstatuspostgres-podman●postgres-podman.service-カスタムPostgresPodmanContainer Loaded:loaded(/etc/systemd/system/postgres-podman.service; static)Active:active(running)since月2021-11-1505:20:35UTC; 5秒前プロセス:29565 ExecStartPre =/ usr / bin / podman rm -f postgrespodman(code =exited、status =1 / FAILURE)メインPID:29596(podman)タスク:15(制限:4585)メモリ:262.3M CPU:5.362 ■CGroup:/system.slice/postgres-podman.service├─29596/ usr / bin / podman run -p 5432:5432 -e POSTGRES_PASSWORD =Sup3rSecre7 -e POSTGRES_USER =citizix_user -e POSTGRES_DB =citizix_db docker.io/library/postgres :14.0-alpine└─29646storage-untar/ /var/lib/containers/storage/overlay/772aeee45322a287d8cfed4d3a774519a5a1bfb20750bf46584a8f7a9713fcaf/diffNov15 05:20:37 fedora-client.citizix.com podman [ :20:37 fedora-client.citizix.com podman [29596]:コピーblob sha256:c6b2245b2f36c7d2a1e9071eeede220cca1f2e0662350115a22e7cac7f973a8cNov15 05:20:37 fedora-client.citizix.com podman [29 15 5時20分37秒fedora-client.citizix.com podman [29596]:コピーブロブSHA256:5034a66b99e67db609bf6b4f82bea915e39a42e6f03d11889f7406b4de9e99daNov 15 5時20分37秒fedora-client.citizix.com podman [29596]:コピーブロブSHA256:a0d0a0d46f8b52473982a3c466318f479767577551a53ffc9074c9fa7035982eNov 15午前5時20分:37 fedora-client.citizix.com podman [29596]:blob sha256:3da258773353ad3725cb0ef73e28bd60fdd9078df3790b06b98198a86ef0424fNov 15 05:20:37 fedora-client.citizix.com podman [29596]:blobsha256をコピーしていますclient.citizix.com podman [29596]:blob sha256:028554d3b6ccc72641ab3b2a68597bf04cdbb49e03bb977c69198fd35c098e87Nov 15 05:20:37 fedora-client.citizix.com podman [29596]:blob sha256:2c7をコピーしていますcom podman [29596]:blob sha256:028554d3b6ccc72641ab3b2a68597bf04cdbb49e03bb977c69198fd35c098e87をコピーしています 

Podmanで管理されているコンテナに基づいてカスタムシステムサービスを設定しました!

結論

このガイドでは、Rocky Linux /Centos8サーバーにPodmanをインストールする方法を探ることができました。


Fedora
  1. Fedora35/34にApacheMavenをインストールする方法

  2. Fedora35/34にGradleをインストールする方法

  3. Fedora34/35にPodmanをインストールして使用する方法

  1. Fedora35/34にSkypeをインストールする方法

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

  3. MysqlServer8をFedora34/35にインストールして構成する方法

  1. Fedoraにスナップをインストールして使用する方法

  2. Mongodb5をFedora34/35にインストールする方法

  3. Fedora 32 または 31 (および代替) に Docker をインストールする方法