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