「設定 - Podman Compose」の版間の差分

(ページの作成:「== 概要 == <code>podman compose</code>コマンドは、docker-composeやpodman-composeのような外部のComposeプロバイダの薄いラッパーである。<br> つまり、<code>podman compose</code>はConpose機能を実装する別のツールを実行するが、Composeプロバイダがローカルの Podmanソケットと透過的に通信できるように環境を設定する。<br> <br> 指定したオプション、コマンド、引数は直接co…」)
 
62行目: 62行目:
  export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH"
  export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH"
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== YAMLファイル ==
<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: <Dockerfileのファイルパス>        # Dockerfileを使用する場合、buildを指定
      volumes:                              # ホストとコンテナでファイルを同期する場合等
          - <ホスト側のパス:コンテナのパス>
      ports:                                # ポート転送 (ポートフォワーディング) を行う場合
          - <ホスト側のポート:コンテナのポート>
      environment:                          # 環境変数を指定する場合
          <環境変数名 1: 環境変数値>
          <環境変数名 2: 環境変数値>
          <環境変数名 3: 環境変数値>
      depends_on:                          # 依存関係を設定する場合 (他のコンテナと連携する場合)
          - <コンテナ名>                        # 例: sample1
</syntaxhighlight>
<br><br>
== Composeコマンド ==
YAMLファイルを実行するには、<code>podman-compose -d</code>コマンドで実行する必要がある。<br>
<br>
Composeコマンドは、YAMLファイルが存在するディレクトリで行う。<br>
<br>
==== サービスイメージの確認 ====
podman-compose images
<br>
==== サービスイメージの作成 ====
サービスイメージのビルドを実行する。<br>
YAMLファイルに<code>image:</code>が記述されている場合、そのイメージ名がローカルに存在しなければ、リモートからプルする。<br>
YAMLファイルに<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>
==== サービスの削除 ====
YAMLファイルに記述されているサービスからコンテナを停止して、そのコンテナとネットワークを削除する。<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> <引数...>
# 例: docker-compose.yml内のdbを強制的にpullして、dbおよびwebを実行する
podman-compose run db web new . --force --database=mysql
<br>
==== サービスの設定の確認 ====
YAMLファイルで記述されている設定を表示する。<br>
podman-compose config
<br>
==== サービスログの確認 ====
サービスのログを表示する。<br>
podman-compose logs
<br><br>
<br><br>