📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の8版が非表示)
9行目: 9行目:
なぜなら、docker-composeはCompose仕様のオリジナルの実装であり、サポートされているプラットフォーム (Linux、MacOS、Windows) で広く使用されているからである。<br>
なぜなら、docker-composeはCompose仕様のオリジナルの実装であり、サポートされているプラットフォーム (Linux、MacOS、Windows) で広く使用されているからである。<br>
<br>
<br>
デフォルトの挙動を変更する場合や、選択したプロバイダのカスタムインストールパスが必要な場合は、~/.config/containers.confファイルの<code>compose_provider</code>フィールドを変更する必要がある。<br>
デフォルトの挙動を変更する場合や、選択したプロバイダのカスタムインストールパスが必要な場合は、~/.config/containers/containers.confファイルの<code>compose_provider</code>フィールドを変更する必要がある。<br>
また、環境変数<code>PODMAN_COMPOSE_PROVIDER</code>を設定して変更することもできる。<br>
また、環境変数<code>PODMAN_COMPOSE_PROVIDER</code>を設定して変更することもできる。<br>
<br><br>
== Composeファイル ==
デフォルトで読み込まれるファイル名を以下に示す。<br>
<br>
* podman-compose
*: docker-composeとの互換性のため、同じファイル名が使用される。
*# compose.yaml
*# compose.yml
*# docker-compose.yaml
*# docker-compose.yml
*: <br>
* docker-compose (Docker Compose V2含む)
*: 以下の順序で検索され、最初に見つかったファイルが使用される。
*# compose.yaml
*# compose.yml
*# docker-compose.yaml
*# docker-compose.yml
<br>
<u>※注意</u><br>
<u>podman-composeコマンドが古い場合、compose.yaml / compose.yml に対応していない場合がある。</u><br>
<u>複数のcomposeファイルが存在する場合は、明示的に <code>-f</code> オプションで指定することを推奨する。</u><br>
<br>
# 明示的にファイルを指定する場合
podman-compose -f my-compose.yml up -d
<br><br>
<br><br>


23行目: 48行目:
==== PyPIからインストール ====
==== PyPIからインストール ====
  # Python3のルートディレクトリにインストールする場合
  # Python3のルートディレクトリにインストールする場合
  pip3 install podman-compose python-dotenv PyYAML
  sudo pip3 install podman-compose python-dotenv PyYAML
   
   
  # Python3のユーザディレクトリにインストールする場合
  # Python3のユーザディレクトリにインストールする場合
  pip3 install --user podman-compose python-dotenv PyYAML
  pip3 install --user podman-compose python-dotenv PyYAML
   
   
  # GithubからPodman Composeを直接インストールする場合
  # GithubからPodman Composeをユーザディレクトリに直接インストールする場合
  pip3 install https://github.com/containers/podman-compose/archive/devel.tar.gz
  pip3 install --user https://github.com/containers/podman-compose/archive/devel.tar.gz
  pip3 install python-dotenv PyYAML
  pip3 install --user python-dotenv PyYAML
<br>
<br>
==== ソースコードからインストール ====
==== ソースコードからインストール ====
37行目: 62行目:
パッケージ管理システムからPyYAMLおよびPython-DotEnvをインストールする場合、依存関係が多すぎるため、PyPIからインストールすることを推奨する。<br>
パッケージ管理システムからPyYAMLおよびPython-DotEnvをインストールする場合、依存関係が多すぎるため、PyPIからインストールすることを推奨する。<br>
  pip3 install --user python-dotenv PyYAML
  pip3 install --user python-dotenv PyYAML
# SLE / openSUSEの場合
pip3.6 install --user python-dotenv PyYAML
<br>
<br>
===== aardvark-dnsのインストール (推奨) =====
 
===== aardvark-dnsおよびnetavarkのインストール (推奨) =====
* パッケージ管理システムからインストールする場合
* パッケージ管理システムからインストールする場合
*# netavarkおよびaardvark-dnsをパッケージ管理システムからインストールする。
*# netavarkおよびaardvark-dnsをパッケージ管理システムからインストールする。
52行目: 81行目:
*#: <code>make PREFIX=<Podmanのインストールディレクトリ> -j $(nproc)</code>
*#: <code>make PREFIX=<Podmanのインストールディレクトリ> -j $(nproc)</code>
*#: <code>make PREFIX=<Podmanのインストールディレクトリ> install</code>
*#: <code>make PREFIX=<Podmanのインストールディレクトリ> install</code>
*#: <br>
*# netavarkをインストールする。<br>netavarkを手動でインストールする場合は、[[インストール - Podman#最新のnetavarkが必要な場合|インストール - Podman#ソースコードからインストール#最新のnetavarkが必要な場合]]のページを参照すること。
<br>
<br>
===== Podman DNSname Pluginのインストール (非推奨) =====
===== Podman DNSname Pluginのインストール (非推奨) =====
もし、CNIネットワークを使用する場合は、Podman DNSname Pluginをインストールする。<br>
もし、CNIネットワークを使用する場合は、Podman DNSname Pluginをインストールする。<br>
101行目: 133行目:
  networks:
  networks:
     frontend:
     frontend:
      driver: <ネットワークのドライバを指定>       # bridge, overlay, macvlan等を指定する
       # bridge, overlay, macvlan等を指定する
      driver: <ネットワークのドライバを指定>
     backend:
     backend:
      driver: <ネットワークのドライバを指定>       # bridge, overlay, macvlan等を指定する
       # bridge, overlay, macvlan等を指定する
      driver: <ネットワークのドライバを指定>
       external: <既存の外部ネットワークを指定>
       external: <既存の外部ネットワークを指定>
       driver_opts: <ドライバに関連する追加のオプションを指定>
       driver_opts: <ドライバに関連する追加のオプションを指定>
       ipam:                                 # IPアドレスの管理に関連する設定を指定する
      # IPアドレスの管理に関連する設定を指定する
           driver: default                   # IPアドレス管理のドライバを指定する
       ipam:
           config:                           # driverセクションに指定したドライバに関する設定を指定する
          # IPアドレス管理のドライバを指定する
             - subnet: "<サブネットマスク>"      # 例: 172.18.0.0/16
           driver: default
          # driverセクションに指定したドライバに関する設定を指定する
           config:
             - subnet: "<サブネットマスク  例: 172.18.0.0/16>"
   
   
  # networksセクションの説明:
  # networksセクションの説明:
116行目: 153行目:
   
   
  services:
  services:
     <コンテナ名 1 (任意の名前)>:                   # 例: sample1
     <コンテナ名 1 (任意の名前) 例: sample1)>:
       image: <イメージ (リポジトリ:タグ) を指定する>   # イメージからコンテナを生成する場合、imageを指定
      # イメージからコンテナを生成する場合、imageを指定
       image: <イメージ (リポジトリ:タグ) を指定する>
       command:
       command:
           <コンテナ起動時に実行するコマンド>          # 例: --default-authentication-plugin=mysql_native_password>
           <コンテナ起動時に実行するコマンド  例: --default-authentication-plugin=mysql_native_password>>
       volumes:                               # ホストとコンテナでファイルを同期する場合等
      # ホストとコンテナでファイルを同期する場合等
           - <ホスト側のパス 1:コンテナのパス 1>      #   例: /tmp/mysql/mysql_data:/var/lib/mysql
       volumes:
           # 例: /tmp/mysql/mysql_data:/var/lib/mysql
          - <ホスト側のパス 1:コンテナのパス 1>
           - <ホスト側のパス 2:コンテナのパス 2>
           - <ホスト側のパス 2:コンテナのパス 2>
       ports:                                # ポート転送 (ポートフォワーディング) を行う場合
       # ポート転送 (ポートフォワーディング) を行う場合
           - <ホスト側のポート 1:コンテナのポート 1>   # 例: 63306:3306
      # 例: 63306:3306
      ports:
           - <ホスト側のポート 1:コンテナのポート 1>
           - <ホスト側のポート 2:コンテナのポート 2>
           - <ホスト側のポート 2:コンテナのポート 2>
       environment:                           # 環境変数を指定する場合
      # 環境変数を指定する場合
           <環境変数名 1: 環境変数値>             # 例: MYSQL_ROOT_PASSWORD: password
      # 例1: MYSQL_ROOT_PASSWORD: password
           <環境変数名 2: 環境変数値>             # 例: MYSQL_PORT: 3306
      # 例2: MYSQL_PORT: 3306
       environment:
           <環境変数名 1: 環境変数値>
           <環境変数名 2: 環境変数値>
       security_opt:
       security_opt:
           - apparmor=<AppArmorプロファイル名>    # AppArmorプロファイルを適用する場合
           # AppArmorプロファイルを適用する場合
                                              # /etc/apparmor.dディレクトリにプロファイルを配置して、apparmor_parserコマンドでプロファイルを読み込む必要がある
          # /etc/apparmor.dディレクトリにプロファイルを配置して、apparmor_parserコマンドでプロファイルを読み込む必要がある
          - apparmor=<AppArmorプロファイル名>
   
   
     <コンテナ名 2 (任意の名前)  例: sample2)>:
     <コンテナ名 2 (任意の名前)  例: sample2)>:
       build: <Containerfileのファイルパス>     # Containerfileを使用する場合、buildを指定
       build:
       volumes:                             # ホストとコンテナでファイルを同期する場合等
          # Containerfileが存在するディレクトリ
          context: .
          # Containerfileのファイル名
          containerfile: Containerfile
      # または、以下に示す記述方法でもよい
      # Containerfileのファイルパス
      #build: <Containerfileのファイルパス>
      # 任意のコンテナ名を付けることもできる
       container_name: <任意のコンテナ名>
      # ホストとコンテナでファイルを同期する場合等
      volumes:
           - <ホスト側のパス:コンテナのパス>
           - <ホスト側のパス:コンテナのパス>
       ports:                                # ポート転送 (ポートフォワーディング) を行う場合
       # ポート転送 (ポートフォワーディング) を行う場合
      ports:
           - <ホスト側のポート:コンテナのポート>
           - <ホスト側のポート:コンテナのポート>
       environment:                         # 環境変数を指定する場合
      # 環境変数を指定する場合
       environment:
           <環境変数名 1: 環境変数値>
           <環境変数名 1: 環境変数値>
           <環境変数名 2: 環境変数値>
           <環境変数名 2: 環境変数値>
           <環境変数名 3: 環境変数値>
           <環境変数名 3: 環境変数値>
       depends_on:                          # 依存関係を設定する場合 (他のコンテナと連携する場合)
       # 依存関係を設定する場合 (他のコンテナと連携する場合)
           - <コンテナ名>                        # 例: sample1
      # この項目で指定されたコンテナが先に起動する
      depends_on:
           - <依存するコンテナ名  例: sample1>
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
264行目: 324行目:


__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:Web]][[カテゴリ:コンテナ]]