Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

第17章 特殊なコンテナーイメージの実行

本章では、特殊なタイプのコンテナーイメージについて説明します。一部のコンテナーイメージには、あらかじめ設定されたオプションと引数を使用してコンテナーを実行できる、runlabelsと呼ばれるラベルが組み込まれています。podman container runlabel <label> コマンドでは、コンテナーイメージに対して <label> で定義されているコマンドを実行できます。サポートされるラベルは、installrun、および uninstall です。

17.1. ホストへの権限の付与

特権コンテナーと非特権コンテナーにはいくつかの違いがあります。たとえば、toolbox コンテナーは特権コンテナーです。以下は、コンテナーがホストに対して許可する、または許可しない権限の例です。

  • 特権: 特権コンテナーは、コンテナーをホストから分離するセキュリティー機能を無効にします。特権コンテナーは、podman run --privileged <image_name> コマンドを使用して実行できます。たとえば、root ユーザーが所有するホストからマウントされたファイルおよびディレクトリーを削除できます。
  • プロセステーブル: podman run --privileged --pid=host <image_name> コマンドを使用して、コンテナーでホストの PID 名前空間を使用できます。特権コンテナー内で ps -e コマンドを使用して、ホストで実行しているすべてのプロセスを一覧表示できます。ホストから特権コンテナーで実行するコマンドにプロセス ID を渡すことができます (例: kill <PID>)。
  • ネットワークインターフェース - デフォルトでは、コンテナーには外部のネットワークインターフェースとループバックネットワークインターフェースが 1 つずつだけあります。podman run --net=host <image_name> コマンドを使用して、コンテナー内からホストのネットワークインターフェースに直接アクセスできます。
  • プロセス間のコミュニケーション - ホストの IPC 機能は、特権コンテナーからアクセスできます。ipcs などのコマンドを実行して、ホスト上のアクティブなメッセージキュー、共有メモリーセグメント、およびセマフォセットに関する情報を表示できます。