1. podmanの紹介Podman は以前は CRI-O プロジェクトの一部でしたが、後に独立したプロジェクト libpod に分離されました。Libpod は、コンテナ ポッドを作成するためのツールとライブラリです。Podman は、ルート ユーザーとして、またはルートレス モードで実行されるデーモンレス コンテナ エンジンです。簡単に言うと、podman はコンテナを管理するための docker-CLI コマンドラインを提供します。 2. Dockerと比較した利点Dockerの欠点1: ご存知のとおり、Docker デーモンは C/S モデルを使用して、複数のコア上の CPU リソースをほぼ 100% 占有します。 ポッドマンの利点1: Podman はデーモン プロセスや root 権限グループを必要とせず、ユーザー名前空間を使用してコンテナー内の root 操作をシミュレートし、fork/exec モデルを採用しています。 fork/exec モデルには、C/S モデルに比べて次のような利点があります。
3. 互換性docker の機能のほとんどは podman と互換性があり、エイリアスを使用して docker コマンドを記述することもできます。 4. バックグラウンド サービス ユニット ファイルの優先順位
5. podmanの基本操作インストール#デフォルトの Centos ソース [root@slave02 ~]# yum -y module install container-tools #モジュールに基づくコンテナ ツール [root@slave02 ~]# yum -y install podman-docker #docker 互換パッケージをインストール (オプション) バージョン[root@slave02 ~]# podman -v podman バージョン 3.3.0-dev 倉庫公式リポジトリ: registry.access.redhat.com サードパーティリポジトリ: docker.io プライベートリポジトリ: registry.lab.example.com コマンドヘルプ[root@slave02 ~]# podman ヘルプ|head -15 ポッド、コンテナ、イメージを管理する 使用法: podman [オプション] [コマンド] 使用可能なコマンド: 実行中のコンテナにアタッチする 自動更新 自動更新ポリシーに従ってコンテナを自動更新します ビルド Containerfiles の指示に従ってイメージをビルドする commit 変更されたコンテナに基づいて新しいイメージを作成する #変更されたコンテナに基づいて新しいコンテナを作成する コンテナを管理する cp コンテナとローカルファイルシステム間でファイル/フォルダをコピーする コンテナを作成しますが、起動はしません diff オブジェクトのファイルシステムの変更を表示します イベント podman イベントを表示 .... 画像アクセラレータ設定ファイルを変更する: /etc/containers/registries.conf 注意: httpds//:url 形式を含めることはできません [root@slave02 ~]# cp /etc/containers/registries.conf /backup/registries.conf.back #バックアップ [root@slave02 ~]# vim /etc/containers/registries.conf unqualified-search-registries = ["docker.io"] # 非修飾検索レジストリ [[registry]] プレフィックス = "docker.io" location = "x" #xはAliアクセラレーションミラーのアドレスです 画像をプルする[root@slave02 ~]# podman pull nginx 6. Webコンテナを実行するバックグラウンドでWebコンテナを起動し、コンテナのコンテンツにアクセスする#HTMLページコンテンツを準備する[root@192 ~]# cat /opt/webhtml/index.html 自分の道を進み、自分の景色を見て、満足することなく他人を超え、野心を失わずに他人に追い抜かれる #デーモン Web コンテナ プロセスを実行し、/opt/webhtml ディレクトリの内容を、Web ページが保存されているコンテナの /usr/share/nginx/html にマップします [root@192 ~]# podman run -d --name web -p 8888:80 -v /opt/webhtml:/usr/share/nginx/html nginx 3528e6d5148bcf980f0df5708a82419d3485a33d1d16d722db3e880cc103cd2c [root@podman ~]# カール 192.168.136.129:8888 自分の道を進み、自分の景色を見て、満足することなく他人を超え、野心を失わずに他人に追い抜かれる #コンテナIP [root@podman ~]# podman examine web|grep IPアドレス "IPアドレス": "10.88.0.6", "IPアドレス": "10.88.0.6", #ホストマシンのIP [root@podman ~]# ip r 192.168.136.0/24 dev ens33 proto カーネル スコープ リンク src 192.168.136.129 メトリック 100 #ポートバインディングが実行されるので、curl 192.168.136.129:8888で直接アクセスできます バックエンドのWebコンテナに入り、サービスステータスを確認します [root@podman ~]# podman exec -it web bash root@3528e6d5148b:/# サービス nginx ステータス [ ok ] nginx が実行中です。#実行中 コンテナサービスの内容を変更する #ホストマシンの /opt/webhtml/index.html を変更します [root@podman ~]# cat /opt/webhtml/index.html 自分の道を進み、自分の景色を見て、慢心せずに他人を超え、野心を失わずに他人に追い抜かれるRHCAS RHCE RHCA #[root@podman ~]にアクセス# curl 192.168.136.129:8888 自分の道を進み、自分の景色を見て、慢心せずに他人を超え、野心を失わずに他人に追い抜かれるRHCAS RHCE RHCA # コンテナに入り、コンテンツが変更されたかどうかを確認します [root@podman ~]# podman exec -it web bash root@3528e6d5148b:/# cat /usr/share/nginx/html/index.html 自分の道を進み、自分の景色を見て、慢心せずに他人を超え、野心を失わずに他人に追い抜かれるRHCAS RHCE RHCA コンテナの一時停止と削除#一時停止 [root@podman ~]# podman stop web ウェブ [root@podman ~]# podman ps -a コンテナID イメージ コマンド 作成ステータス ポート名 3528e6d5148b docker.io/library/nginx:latest nginx -g daemon o... 25 分前 終了 (0) 16 秒前 0.0.0.0:8888->80/tcp web #削除 [root@podman ~]# podman rm web 3528e6d5148bcf980f0df5708a82419d3485a33d1d16d722db3e880cc103cd2c #または実行中のコンテナを強制的に削除する [root@podman ~]# podman rm -f web 3528e6d5148bcf980f0df5708a82419d3485a33d1d16d722db3e880cc103cd2c 7. Webコンテナの設定が自動的に開始されますバックグラウンドでWebコンテナを実行する[root@podman ~]# podman run --name web -d -p 8080:80 -v /opt/webhtml:/usr/shar/nginx/html nginx 910db3ab6bd1ef18e5fd0afe1844912f0b89334b7b8ab758353a948a1b55282a Webコンテナに基づいて、通常の優先度の/etc/systemd/systemに .service ユニットファイルを作成する[root@192 ~]# cd /etc/systemd/system/ [root@podman ユーザー]# podman generate systemd -- --container-prefix (コンテナの Systemd ユニット名プレフィックス) --files {標準出力に印刷する代わりに .service ファイルを生成する} --format (作成されたユニットを指定された形式 (json) で印刷します) # 指定された形式でユニット ファイルを印刷します --name (ID の代わりにコンテナー/ポッド名を使用します) # 既存のコンテナーを使用する代わりに新しいコンテナーを作成します --new (既存のコンテナーを起動する代わりに新しいコンテナーを作成します) # (ヘッダー生成をスキップします) --no-header (ヘッダー生成をスキップ) --pod-prefix (ポッドの Systemd ユニット名プレフィックス) --restart-policy (Systemd 再起動ポリシー) --separator (名前/IDとプレフィックス間のSystemdユニット名区切り文字) --time (タイムアウトのオーバーライドを停止) [root@192 system]# podman generate systemd --name web --files --new コンテナのWebサービス 生成されたユニットファイルを表示する[root@192 システム]# cat コンテナ-web.service # コンテナウェブサービス # Podman 3.3.0-dev によって自動生成 # 2021 年 8 月 17 日火曜日 13:03:13 CST # 2021 年 8 月 17 日火曜日 13:03:13 CST [ユニット] #ユニットの説明=Podman container-web.service #説明のドキュメント=man:podman-generate-systemd(1) #ヘルプと生成されたシステム Wants=network-online.target #ネットワーク After=network-online.target RequiresMountsFor=%t/containers # 重要でない場合は前のものをスキップします [サービス] 環境=PODMAN_SYSTEMD_UNIT=%n Restart=on-failure #失敗時に再起動 TimeoutStopSec=70 #タイムアウト ExecStart=/usr/bin/podman run --sdnotify=conmon --cgroups=no-conmon --rm --replace --name web -d -p 8080:80 -v /opt/webhtml:/usr/shar/nginx/html nginx #実行は、作成したばかりのコンテナを実行する /usr/bin/podman から開始されます Type=notify 通知アクセス=すべて [インストール] WantedBy=マルチユーザー.target デフォルト.target コンテナを今すぐ削除[root@podman ~]# podman rm web 910db3ab6bd1ef18e5fd0afe1844912f0b89334b7b8ab758353a948a1b55282a [root@podman ~]# podman ps -a コンテナID イメージ コマンド 作成ステータス ポート名 自動起動を設定する[root@192 ~]# systemctl デーモンリロード [root@192 ~]# systemctl enable --now container-web.service /etc/systemd/system/multi-user.target.wants/container-web.service → /etc/systemd/system/container-web.service のシンボリックリンクを作成しました。 /etc/systemd/system/default.target.wants/container-web.service → /etc/systemd/system/container-web.service のシンボリックリンクを作成しました。 [root@192 ユーザー]# podman ps -a コンテナID イメージ コマンド 作成ステータス ポート名 b0c7709cb00e docker.io/library/nginx:latest nginx -g daemon o... 15 秒前 16 秒前にアップ 0.0.0.0:8080->80/tcp web コンテナをルートレス モードで設定する方法は、上記の方法と同様です。 systemctlコマンドを--userとともに使用する #サーバーの起動時にユーザーサービスが自動的に起動するようにするには、loginctl enable-linger コマンドを実行する必要があります [containers@serverb ~]$ loginctl enable-linger 上記は、Podman ブートおよび自動起動コンテナの実装プロセスの詳細な内容です。Podman ブートおよび自動起動コンテナの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: 国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)
パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...
今日は仮想マシンを使って実験をしました。システムをインストールし、いくつかのオプションを最適化した後...
MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...
この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...
今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...
ポップアップは、現在のウィンドウにメニューツールバーがあるかどうかとは関係ありません。ページにスクリ...
この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...
Yum (フルネームは Yellow dog Updater, Modified) は、Fedora...
この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...
Linux での ssh サービス構成など、ssh サーバー構成に関する記事は多数あります。ここでは...
継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...
Mysql は人気があり、使いやすいデータベース ソフトウェアです。以下は、mysql の無料インス...
パスワード強度検証について: [root@mysql mysql]# mysql -uroot -p...
まず公式サイトにアクセスしてダウンロードし、MySQLダウンロードをクリックします。 ダウンロードし...
フロントエンド開発を行っている初心者の学生を多く見かけますが、彼らの効率は比較的遅いです。常にコード...