1. はじめに DockerではなくPodmanを利用する理由
コンテナ技術といえば多くの人がDockerを思い浮かべるでしょう。しかし、ここではPodmanを使用します。以下に、DockerではなくPodmanを利用する利点を説明します。
1-1. デーモンレスアーキテクチャ
Dockerはデーモン(長時間動作するバックグラウンドプロセス)を使用してコンテナを管理しますが、Podmanはデーモンを使用しません。これにより、次の利点があります:
- セキュリティの向上:デーモンが不要なため、システムの脆弱性を減少させ、攻撃面を縮小します。
- シンプルなプロセス管理:各コンテナは独立したプロセスとして実行されるため、システムの標準ツールで簡単に管理できます。
1-2. ルートレスコンテナ
Podmanはルートレス(非特権)モードでコンテナを実行できます。これにより、管理者権限を持たないユーザーでもコンテナを操作でき、安全性が向上します。特に以下の点でメリットがあります:
- セキュリティの強化:管理者権限を必要としないため、特権昇格攻撃のリスクを低減できます。
- マルチユーザー環境に最適:複数のユーザーが同一システムでコンテナを実行する場合に、各ユーザーの権限を分離して安全に運用できます。
1-3. Docker互換性
PodmanはDocker CLIと高い互換性があります。ほとんどのDockerコマンドをPodmanでそのまま使用できます。これにより、Dockerからの移行がスムーズに行えます。また、以下の点も利点です:
- 学習コストの低減:既にDockerに慣れているユーザーは、ほぼそのままの知識でPodmanを利用できます。
- 既存ツールの活用:Docker用に作成されたスクリプトやツールを大幅な変更なしで利用できます。
1-4. Kubernetesとの親和性
PodmanはKubernetesとの統合がスムーズです。Podmanで作成したコンテナやポッドは、そのままKubernetesに移行できます。これにより、開発から本番環境へのデプロイが一貫して行えます。
1-5. Docker Desktopのライセンス問題
2021年8月以降、Docker Desktopのライセンスは変更され、以下のような制約が追加されました:
- 商用利用の制限:企業や大規模な組織がDocker Desktopを商用目的で利用する場合、有料のサブスクリプションが必要です。
- 規模による制限:非商用利用であっても、従業員数が250人以上、または年間収益が1000万ドル以上の組織は、有料のサブスクリプションが必要です。
このライセンス変更により、多くの組織で以下のような課題が生じています:
- コストの増加:大規模な組織ではライセンス費用が大きな負担となる可能性があります。
- ライセンス管理の複雑化:利用者数や収益に応じてライセンスを管理する必要があり、運用が複雑化します。
一方で、Podmanはオープンソースであり、商用利用に関する制限がありません。これにより、以下の利点があります:
- コストの削減:ライセンス費用を気にせずに利用できるため、コストを削減できます。
- 自由な利用:商用、非商用を問わず自由に利用できるため、開発から本番環境まで一貫して利用できます。
2.環境の概要
No. | ソフトウェア分類 | ソフトウェア | 用途 | 備考 |
---|---|---|---|---|
1 | OS | Windows 11 | 主要なデスクトップオペレーティングシステム | 僕が使っているOSだから |
2 | 仮想化ソフトウェア | WSL (Windows Subsystem for Linux) | Windows上でLinux環境を提供する仮想化ソリューション | 軽量で高性能な仮想化が可能 |
3 | コンテナソフトウェア | Podman | デーモンレスで動作するコンテナエンジン | Docker互換性が高く、セキュリティが強化されている |
4 | コンテナ簡易オーケストレーター | Podman Compose | 複数のコンテナの管理とオーケストレーションを簡易に行うツール | Podman単体では管理が難しい複数コンテナの連携を簡素化 |
3.環境構築
すでに導入済みのWindowsにPodmanをインストールする手順を示す。
3.1 WSLインストール
以下の手順はPowerShellを管理者として開き実行します。
- WSL2をデフォルトバージョンとして設定します。
wsl --set-default-version 2
- 以下のコマンドを実行してWSLを有効にします。
wsl --install -d Ubuntu-24.04
Ubuntuの初期セットアップ
- Ubuntuを初めて起動する(通常インストール時)と、以下のようなプロンプトが表示されるので、指示に従ってユーザー名とパスワードを設定します。
Enter new UNIX username: <your-username>
New password: <your-password>
Retype new password: <your-password>
- システムを最新の状態に更新します。
sudo apt-get update
sudo apt-get upgrade -y
3.2 Podmanインストール
- WSL上のUbuntuで以下のコマンドを実行し、Podmanをインストールします。
sudo apt-get -y install podman
- Podmanが正しくインストールされているか確認します。
podman --version
3.3 Podmancompose インストール
- 以下のコマンドを実行してPodman Composeをインストールします。
sudo apt-get install podman-compose -y
- Podman Composeが正しくインストールされているか確認します。
podman-compose --version
以下のようにVersionが示されれば完了です。お疲れさまでした。
podman-compose version 1.2.0
podman version 4.9.3