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. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...
問題の説明ご存知のとおり、MySQL でフィールドを昇順に並べ替える SQL は次のとおりです (i...
序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...
この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...
目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...
1. ネイティブネットワークリクエスト1. XMLHttpRequest (W3C 標準) // 約...
目次vue2.xプレコンセプト:ルーティングフックのカテゴリルーティングとコンポーネントの概念(フッ...
画像をプルする # docker pull codercom/code-server # Docke...
目次構成nfs サーバー (nfs.skills.com) nfs クライアント (client.s...
文書タイプDoctype は、指示を解析するためにどのバージョンの HTML を使用するかをブラウザ...
目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...
この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...
1.リスナーを見る時計のご紹介 'vue' から { ref, reactive, ...
前回の「最もシンプルなスイッチを実現するCSS」のように、HTML5とCSS3でほとんどの機能をすで...
よく知らないサーバーの場合や、かなり前にインストールした場所を忘れてしまった場合、構成ファイルの場所...