プロジェクト

全般

プロフィール

PodmanでDocker Composeを使う

最終更新日:2023/09/18

これがないと始まらない

インストール方法

Using Podman and Docker Compose | Enable Sysadmin
https://www.redhat.com/sysadmin/podman-docker-compose

要約するとDockerコマンドを通してPodmanが使えるようになるから、Dockerコマンドを使うDocker Composeをそのまま使えるよってこと。
(多分)

(1):必須パッケージインストール

まずは「podman-docker」と「podman-plugins」パッケージをインストールする。
「podman-docker」はDockerコマンドをエミュレートするもの、「podman-plugins」はコンテナ間通信でコンテナ名でアクセスするのに必要。

dnf install -y podman-docker podman-plugins

次にDocker Composeをインストールする。

curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

インストールしたら実行権限も付与すること!

chmod +x /usr/local/bin/docker-compose

上記のコマンドは編集時のバージョン(2.21.0)のため、最新のバージョンがないか公式サイトで確認すること。

Docker Compose のインストール — Docker-docs-ja 24.0 ドキュメント
https://docs.docker.jp/compose/install.html

(2):サービス起動

動作に必要なPodmanのソケットサービスを起動させる。

sudo systemctl start podman.socket

自動起動させる場合はこっちも。

sudo systemctl enable podman.socket

(3):動作確認

バージョン確認コマンドを実行してバージョン情報が表示されればOK。

コマンド

docker-compose version

結果

Docker Compose version v2.21.0

Dockerコマンドも使用可能。
Podmanでエミュレートしてるよメッセージが表示される。

コマンド

docker -v

結果

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
podman version 4.4.1

Podman Composeについて

解説

Docker ComposeのPodmanバージョン、有志の方々が作成している。

先程のDocker Composeとの違いとして、Podman Composeの場合はDockerfileでのコンテナ作成時にPodが作成され、その中にコンテナやネットワークが作成される。
Docker Composeの場合はPodは作成されず、コンテナとネットワークがそのまま作成される。

公式でDocker Composeが使えるようになったため、もう必要なさそうだが残しておく。

インストール

containers/podman-compose: a script to run docker-compose.yml using podman
https://github.com/containers/podman-compose

Podman Composeでほぼ同じコマンドが使用できる。
PyPI(pip3)でもインストールできるが、ボリューム周りで不具合があるバージョンの可能性があるため、GitHubから開発版をインストールするのがおすすめ。
(インスコのやり方はリンク先で)

注意点

コンテナ名がサービス名と同じだといけないらしい。
必ず「container_name」で別名を付けること。

redmine:
  container_name: 'redmine_container'

使い方

  • 構築して起動
podman-compose up -d

メインページに戻る

他の形式にエクスポート: PDF HTML TXT