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アクセスを持つユーザー
- インターネットへのアクセス
目次
- サーバーが最新であることを確認する
- podmanのインストール
- コマンドラインの例
- Runapostgres永続コンテナ
- 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