docker-compose.ymlでまとめてコンテナ作成・起動・ネットワーク接続する方法
2026/09/22
Podmanでコンテナを作成してネットワーク接続する際、Cockpit上やCUIで色々対応していたがこれが面倒くさい。調べたところ「docker-compose.yml」という設定ファイルを作成の上、コマンドを打てばその辺りをまとめて一括で対応してくれるらしい。以下に詳細をメモ。
環境について
VPS
今回はKAGOYA CLOUD VPSのCPU1コア / メモリ1GBプランで作業した。SSH接続は公式案内の通り以下でログインできる。
- 接続ポート -> 22
- ユーザ名 -> root
- パスワード or 秘密鍵 -> インスタンス作成時に選択したもの
ホスト(VPS)側 AlmaLinux
詳細なバージョンは以下の通り。
# AlmaLinuxのバージョン確認 cat /etc/redhat-release # 実行結果 AlmaLinux release 8.10 (Cerulean Leopard)
対応方法
設定ファイル(docker-compose.yml)の作成
コメントを参考に以下内容のファイルを適当なディレクトリにアップロードする。尚、今回は「web-db-net」というネットワークを事前に作成していたが、事前に作成していない場合「external: true」は不要なので削除すること。
version: '3.8'
services:
# Webコンテナ用設定
web:
# コンテナ名
container_name: apache-php8.4-plus-1.4-container
# 使用するイメージ
image: apache-php8.4-plus-1.4
# ホスト再起動時にコンテナを自動起動
restart: always
# ポートマッピング
ports:
- "8080:80"
# ボリューム設定
volumes:
# マウントするディレクトリ
- ../podman_test_1:/var/www/html
# PHPとApacheの設定ファイル
- ./ymlファイルの設置ディレクトリを相対パス指定/custom-php.ini:/usr/local/etc/php/conf.d/custom-php.ini:ro
- ./ymlファイルの設置ディレクトリを相対パス指定/mpm_prefork.conf:/etc/apache2/mods-available/mpm_prefork.conf:ro
# ネットワーク設定
networks:
- web-db-net
deploy:
resources:
limits:
# 割り当てメモリ
memory: 384M
# DBコンテナ用設定
db:
# コンテナ名
container_name: mariadb-plus-1.0-container
# 使用するイメージ
image: mariadb:11.4
# ホスト再起動時にコンテナを自動起動
restart: always
# 環境変数
environment:
MARIADB_ROOT_PASSWORD: test_root_pass
MARIADB_DATABASE: test_database
MARIADB_USER: test_user
MARIADB_PASSWORD: test_user_pass
# ボリューム設定
volumes:
# データの永続化マウント
- ../../../lib/mariadb_data:/var/lib/mysql
# 設定ファイル
- ./ymlファイルの設置ディレクトリを相対パス指定/custom-mariadb.cnf:/etc/mysql/conf.d/custom-mariadb.cnf:ro
# ネットワーク設定
networks:
- web-db-net
deploy:
resources:
limits:
# 割り当てメモリ
memory: 256M
# ネットワーク設定
networks:
web-db-net:
# 作成済みのネットワークを使用
external: true
Docker Compose CLIプラグインの導入
私の環境だと以下コマンドを実行したところエラー。
# docker-compose.ymlを設置したディレクトリに移動 cd /【docker-compose.yml】を設置したディレクトリ/ # docker-compose.ymlで指定した内容を実行 podman compose up -d # エラーが出力 -bash: podman-compose: command not found
以下でもエラー。
# podman compose up -d
# 以下エラーが出力
Error: looking up compose provider failed
7 errors occurred:
* exec: "docker-compose": executable file not found in $PATH
* exec: "/root/.docker/cli-plugins/docker-compose": stat /root/.docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/local/lib/docker/cli-plugins/docker-compose": stat /usr/local/lib/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/local/libexec/docker/cli-plugins/docker-compose": stat /usr/local/libexec/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/lib/docker/cli-plugins/docker-compose": stat /usr/lib/docker/cli-plugins/docker-compose: no such file or directory
* exec: "/usr/libexec/docker/cli-plugins/docker-compose": stat /usr/libexec/docker/cli-plugins/docker-compose: no such file or directory
* exec: "podman-compose": executable file not found in $PATH
そのため、まずは以下の通りDocker Compose CLIプラグインを導入する。
# Docker Composeプラグイン用ディレクトリを作成 mkdir -p /usr/libexec/docker/cli-plugins # Docker Composeバイナリをダウンロード curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/libexec/docker/cli-plugins/docker-compose # 実行権限を付与 chmod +x /usr/libexec/docker/cli-plugins/docker-compose
正常に導入できたら以下コマンドを実行する。
# docker-compose.ymlを設置したディレクトリに移動 cd /【docker-compose.yml】を設置したディレクトリ/ # docker-compose.ymlで指定した内容を実行 podman compose up -d
以上でコンテナが起動した筈。以下でコンテナ一覧とメモリ使用量が確認できる。
# コンテナ一覧を表示 podman ps # メモリ使用量 podman stats --no-stream
関連記事
-
-
Podmanでデータベース用コンテナを作成しWebサーバ用コンテナと接続する方法
Podmanでデータベース用コンテナを作成し、Webサーバ用コンテナからPHPで ...
-
-
Podmanコンテナ環境にWordPressを導入の上、パーミッション等の各種設定を行う方法
Podmanコンテナ環境にWordPressを導入したい。何も考えずにWP関連の ...
-
-
Cockipitからコンテナ内のPHPをsystemd timerで自動実行する方法
以前Cockpitでsystemd timer設定を行ったが、その際はLAMP環 ...
-
-
自前のメールサーバコンテナから送信したメールがGmailで迷惑メールフィルタリングされないよう設定する方法
先日構築したメールサーバ用コンテナでメール送信時、GmailやYahooメールだ ...
-
-
Mailpitよりも軽量なダミーSMTPサーバー「MailCrab」の導入方法
先日テストメールの受信テストを行えるMailpitコンテナを導入したが、これより ...