Dock Stay
Docker / Podman のインストール
はじめに

Docker / Podman のインストール

macOS・Windows・Linux それぞれで Docker または Podman をインストールする手順をまとめます。選択肢と、それぞれのメリット・落とし穴を整理します。

Docker / Podman のインストール diagram

そもそもどれを入れるか

選択肢は大きく分けて次の 5 系統です。

製品 対応 OS 特徴
Docker Desktop macOS / Windows / Linux もっとも情報量が多い。GUI 付き。商用ライセンスに注意(大企業は有償)
Colima macOS / Linux Lima ベースの軽量 Docker 環境。CLI のみ・OSS
OrbStack macOS 起動が速く省電力な Docker / Kubernetes 環境。個人無料・商用有償
Podman Desktop macOS / Windows / Linux Podman 公式 GUI。daemonless / rootless
Rancher Desktop macOS / Windows / Linux containerd または dockerd を選べる。OSS

「会社で無料かつ制約なく使いたい」なら Podman か Colima、「Docker の操作感に慣れていて GUI も欲しい」なら Docker Desktop か OrbStack、というのが目安です。

macOS: Docker Desktop / Colima / OrbStack / Podman

macOS はホストが Darwin なので、いずれの製品も裏で軽量 Linux VM を起動して、その中で Linux コンテナを動かします。

  • Docker Desktop: 公式サイトから .dmg をダウンロード、またはインストーラ経由
  • Colima: Homebrew で brew install colima docker docker-composecolima start
  • OrbStack: 公式サイトから .dmg。Docker CLI と Kubernetes が同梱
  • Podman: brew install podmanpodman machine init && podman machine start

CPU は Apple Silicon (arm64) と Intel (amd64) で異なるため、x86_64 のイメージを Apple Silicon で動かすと QEMU エミュレーションになり遅い

業務イメージは multi-arch でビルドしておくのが望ましいです。

bash
# Colima 例
brew install colima docker docker-compose
colima start --cpu 4 --memory 8 --arch aarch64
docker run --rm hello-world

# Podman 例
brew install podman
podman machine init
podman machine start
podman run --rm hello-world

Windows: WSL2 + Docker Desktop / Rancher Desktop

Windows でも Linux コンテナを動かす場合は、WSL2(Windows Subsystem for Linux 2)を有効化し、その上で Docker や Podman を動かすのが現実解です。

  1. 管理者権限の PowerShell で wsl --install を実行
  2. 再起動後、Ubuntu などのディストロをインストール
  3. Docker Desktop をインストールし、設定で「Use the WSL2 based engine」にチェック
  4. Settings → Resources → WSL Integration で使いたいディストロを ON にする

落とし穴: WSL2 上で開発する場合、ソースは \\wsl$\... 側(Linux ファイルシステム)に置くこと。

Windows 側 /mnt/c/... に置くと bind mount が遅く、inotify も安定しません。

bash
# PowerShell (管理者)
wsl --install
wsl --set-default-version 2

# WSL2 の Ubuntu で確認
docker run --rm hello-world

Linux: docker-ce / podman をパッケージから入れる

Linux ホストなら VM を経由せず、そのままコンテナが動きます。

配布元は主に 2 つです。

  • Docker: Docker 公式リポジトリの docker-ce パッケージを推奨。ディストロ標準の docker.io は古いことが多い
  • Podman: Red Hat 系(Fedora / RHEL / Rocky)では標準パッケージ。Ubuntu でも apt install podman で入る

インストール後に 一般ユーザーで docker コマンドを使えるようにする には、ユーザーを docker グループに追加します。

ただしこの操作は実質的に root 権限を与えるのと等価なので、セキュリティが厳しい環境では Podman の rootless モードを検討してください。

bash
# Ubuntu / Debian 向け Docker 公式リポジトリ追加の例
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo $VERSION_CODENAME) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 一般ユーザーを docker グループに追加(要再ログイン)
sudo usermod -aG docker $USER

動作確認と最初のつまずきポイント

インストール後は次の 3 つを順に確認します。

  1. docker version / podman version でクライアントとサーバーの両方が表示される
  2. docker info / podman info でストレージドライバ・ネットワーク・cgroups のバージョンを確認
  3. docker run --rm hello-world / podman run --rm hello-world が成功する

よくあるつまずき:

  • permission denied while trying to connect to the Docker daemon socket: docker グループ追加後に再ログインしていないnewgrp docker か一度ログアウト
  • Cannot connect to the Docker daemon: デーモンが起動していない。Linux なら sudo systemctl start docker、Desktop なら GUI を起動
  • no matching manifest for linux/arm64/v8: Apple Silicon で amd64 専用イメージを引いた。--platform linux/amd64 を付けるか multi-arch 対応イメージを探す
  • 社内プロキシ環境で pull が止まる: Docker Desktop なら Settings → Resources → Proxies、Linux なら /etc/systemd/system/docker.service.d/http-proxy.conf を作成