# PodmanでDocker Composeを使う _**最終更新日:2023/09/18**_ これがないと始まらない {{toc}} ## インストール方法 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」はコンテナ間通信でコンテナ名でアクセスするのに必要。 ``` shell dnf install -y podman-docker podman-plugins ``` 次にDocker Composeをインストールする。 ``` shell curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose ``` インストールしたら実行権限も付与すること! ``` shell 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のソケットサービスを起動させる。 ``` shell sudo systemctl start podman.socket ``` 自動起動させる場合はこっちも。 ``` shell sudo systemctl enable podman.socket ``` ### (3):動作確認 バージョン確認コマンドを実行してバージョン情報が表示されればOK。 コマンド ``` shell docker-compose version ``` 結果 ``` shell Docker Compose version v2.21.0 ``` Dockerコマンドも使用可能。 Podmanでエミュレートしてるよメッセージが表示される。 コマンド ``` shell docker -v ``` 結果 ``` shell 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」で別名を付けること。 ``` yaml redmine: container_name: 'redmine_container' ``` ### 使い方 * 構築して起動 ``` shell podman-compose up -d ``` --- [[podman:wiki|メインページに戻る]]