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でメールサーバ用コンテナ(postfix / dovecot)を導入する方法
かなり前にCentOS6系にメールサーバを導入する方法をメモしたが、これをPod ...
-
-
PodmanでMailpit用コンテナを作成しPHPからテストメールを送受信する方法
開発中などでPHPからテストメールを送信したい。以前メモしたmailtrapを使 ...
-
-
CockpitとPodmanでWebサーバ用コンテナを作成しHello Worldページを表示する方法
Cockpitにはcockpit-podmanというPodman(Dockerの ...
-
-
PodmanでPython用コンテナを作成しデータベース用コンテナに接続する方法
PodmanでPython用コンテナを作成しデータベース(MariaDB)用コン ...
-
-
Podmanで作成したApache用コンテナにLet's Encryptを導入しHTTPS接続できるようにする方法
先日Podmanで作成したApache用コンテナに対してドメインを割り当てたが、 ...