MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - Podman Composeのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - Podman Compose
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <code>podman compose</code>コマンドは、docker-composeやpodman-composeのような外部のComposeプロバイダの薄いラッパーである。<br> つまり、<code>podman compose</code>はConpose機能を実装する別のツールを実行するが、Composeプロバイダがローカルの Podmanソケットと透過的に通信できるように環境を設定する。<br> <br> 指定したオプション、コマンド、引数は直接composeプロバイダに渡される。<br> デフォルトのComposeプロバイダは、docker-composeとpodman-composeである。<br> <br> <u>両方ともインストールされている場合は、docker-composeが優先される。</u><br> なぜなら、docker-composeはCompose仕様のオリジナルの実装であり、サポートされているプラットフォーム (Linux、MacOS、Windows) で広く使用されているからである。<br> <br> デフォルトの挙動を変更する場合や、選択したプロバイダのカスタムインストールパスが必要な場合は、containers.confファイルの<code>compose_provider</code>フィールドを変更する必要がある。<br> また、環境変数<code>PODMAN_COMPOSE_PROVIDER</code>を設定して変更することもできる。<br> <br><br> == Podman Composeのインストール == ==== パッケージ管理システムからインストール ==== # RHEL sudo dnf install podman-compose # SUSE sudo zypper install python3-podman-compose <br> ==== PyPIからインストール ==== # Python3のルートディレクトリにインストールする場合 pip3 install podman-compose python-dotenv PyYAML # Python3のユーザディレクトリにインストールする場合 pip3 install --user podman-compose python-dotenv PyYAML # GithubからPodman Composeを直接インストールする場合 pip3 install https://github.com/containers/podman-compose/archive/devel.tar.gz pip3 install python-dotenv PyYAML <br> ==== ソースコードからインストール ==== まず、PyYAMLおよびPython-DotEnvをインストールする。<br> パッケージ管理システムからPyYAMLおよびPython-DotEnvをインストールする場合、依存関係が多すぎるため、PyPIからインストールすることを推奨する。<br> pip3 install --user python-dotenv PyYAML <br> もし、CNIネットワークを使用する場合は、Podman DNSname Pluginをインストールする。<br> ただし、2023年以降、Podman DNSname Pluginの開発は止まっているため、[https://github.com/containers/netavark/ netavark]と[https://github.com/containers/aardvark-dns/ aardvark-dns]を使用することを推奨する。<br> # Podman DNSname Pluginのインストール git clone https://github.com/containers/dnsname.git cd dnsname make -j $(nproc) PREFIX=<Podmanのインストールディレクトリ> make install PREFIX=<Podmanのインストールディレクトリ> # netavarkおよびaardvark-dnsをパッケージ管理システムからインストール sudo zypper install netavark aardvark-dns <br> Podman ComposeのGithubから、ソースコードをダウンロードする。<br> git clone https://github.com/containers/podman-compose.git -b stable <br> Podman Composeをビルドおよびインストールする。<br> export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH" python3 ./setup.py build python3 ./setup.py install --prefix=<Podmanのインストールディレクトリ> <br> ~/.profileファイル等に、環境変数<code>PYTHONPATH</code>を設定する。<br> <syntaxhighlight lang="sh"> export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH" </syntaxhighlight> <br><br> == container-compose.ymlファイル == <syntaxhighlight lang="yaml"> version: '<Composeファイルのバージョン (docker-compose.ymlのバージョンと同じ)>' # 例: '3' services: <コンテナ名 1 (任意の名前)>: # 例: sample1 image: <イメージ (リポジトリ:タグ) を指定する> # イメージからコンテナを生成する場合、imageを指定 command: <コンテナ起動時に実行するコマンド> # 例: --default-authentication-plugin=mysql_native_password> volumes: # ホストとコンテナでファイルを同期する場合等 - <ホスト側のパス 1:コンテナのパス 1> # 例: /tmp/mysql/mysql_data:/var/lib/mysql - <ホスト側のパス 2:コンテナのパス 2> ports: # ポート転送 (ポートフォワーディング) を行う場合 - <ホスト側のポート 1:コンテナのポート 1> # 例: 63306:3306 - <ホスト側のポート 2:コンテナのポート 2> environment: # 環境変数を指定する場合 <環境変数名 1: 環境変数値> # 例: MYSQL_ROOT_PASSWORD: password <環境変数名 2: 環境変数値> # 例: MYSQL_PORT: 3306 <コンテナ名 2 (任意の名前) 例: sample2)>: build: <Containerfileのファイルパス> # Containerfileを使用する場合、buildを指定 volumes: # ホストとコンテナでファイルを同期する場合等 - <ホスト側のパス:コンテナのパス> ports: # ポート転送 (ポートフォワーディング) を行う場合 - <ホスト側のポート:コンテナのポート> environment: # 環境変数を指定する場合 <環境変数名 1: 環境変数値> <環境変数名 2: 環境変数値> <環境変数名 3: 環境変数値> depends_on: # 依存関係を設定する場合 (他のコンテナと連携する場合) - <コンテナ名> # 例: sample1 </syntaxhighlight> <br><br> == Composeコマンド == container-compose.ymlファイルを実行するには、<code>podman-compose -d</code>コマンドで実行する必要がある。<br> <br> Composeコマンドは、container-compose.ymlファイルが存在するディレクトリで行う。<br> もし、別のディレクトリに存在するcontainer-compose.ymlファイルを指定する場合は、<code>-f</code>オプションを付加する。<br> podman-compose <コマンド> -f <container-compose.ymlファイルのパス> <br> ==== サービスイメージの確認 ==== podman-compose images <br> ==== サービスイメージの作成 ==== サービスイメージのビルドを実行する。<br> container-compose.ymlファイルに<code>image:</code>が記述されている場合、そのイメージ名がローカルに存在しなければ、リモートからプルする。<br> container-compose.ymlファイルに<code>image:</code>が記述されていない場合、<code>build</code>に記述されているパスのContainerfileを使用して、コンテナイメージを構築する。<br> podman-compose build <br> ==== リモートからサービスイメージを取得 ==== リモートからコンテナイメージを取得する。<br> podman-compose pull <br> ==== サービスの確認 ==== podman-compose ps <br> ==== サービスの作成 ==== 構築されたサービスイメージからサービスを作成する。<br> また、作成直後のサービスは停止している。<br> podman-compose create <br> ==== サービスの実行 ==== サービスを作成して起動する。<br> <code>-d</code>オプションを付加することにより、バックグラウンドで実行することができる。<br> また、<code>--build</code>オプションを付加することにより、起動前にイメージを構築することもできる。<br> podman-compose up # バックグラウンドで実行する場合 podman-compose up -d # サービスイメージを構築してサービスを実行する場合 podman-compose up -d --build <br> ==== サービスの起動 ==== 停止中のサービスを起動する。<br> podman-compose start <br> ==== サービス再起動 ==== サービスを再起動する。<br> podman-compose restart <br> ==== サービスの停止 ==== 起動中のサービスを停止する。<br> podman-compose stop <br> ==== サービスの削除 ==== container-compose.ymlファイルに記述されているサービスからコンテナを停止して、そのコンテナとネットワークを削除する。<br> <code>--rmi all</code>オプションを付加することにより、サービスイメージも削除することができる。<br> podman-compose down # サービスイメージの停止および削除 podman-compose down --rmi all <br> ==== サービスの強制削除 ==== 停止中のコンテナを削除する。<br> podman-compose rm <br> ==== サービスの強制消去 ==== サービスを強制停止する。<br> podman-compose kill <br> ==== コマンドの実行 ==== 引数で指定したサービスのコンテナ内でコマンドを実行する。<br> podman-compose run <サービス名> <コマンド> <引数 1> <引数 2> <引数...> # 例: container-compose.ymlファイル内のdbを強制的にpullして、dbおよびwebを実行する podman-compose run db web new . --force --database=mysql <br> ==== サービスの設定の確認 ==== container-compose.ymlファイルで記述されている設定を表示する。<br> podman-compose config <br> ==== サービスログの確認 ==== サービスのログを表示する。<br> podman-compose logs <br><br> == Kubernetes YAMLへ変換 == Container-compose.ymlファイルからポッドを構築する。<br> podman-compose up -d # または podman-compose up -d -f <Container-compose.ymlファイルのパス> <br> Kubernetes YAMLファイルへ変換する。<br> podman generate kube <ポッド名> > <Kubernetes YAMLファイル名>.yml <br><br> __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]]
設定 - Podman Compose
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse