DebianにDockerをルートフルモードでインストールする
Dockerは、最も人気のあるコンテナ化プラットフォームの一つで、アプリケーションを隔離された環境で実行することができます。デフォルトでは、Dockerはrootfulモードで実行され、コンテナの管理にシステムのルート権限を使用します。この設定は、互換性を重視し、設定の問題を減らしたいほとんどのユーザーに最適です。
このガイドでは、クリーンなDebianシステム上でDockerエンジンとDocker Composeをインストールおよび設定する方法を、rootフルモードを使用して学びます。
なぜRootful Dockerを選ぶのか?
Rootful Docker とは、Docker デーモンが root として実行され、昇格した権限でコンテナを管理することを意味します。
利点:
- ほとんどの画像やアプリケーションとの完全な互換性
- より簡単なネットワーキングとポートマッピング
- システムツールとのより良い統合
欠点:
- デーモンがルート権限で実行されるため、ルートレスモードよりも安全性が低い
Rootful Docker は、次の場合は問題なく使用できます:
- あなたはシステム上の唯一のユーザーです。
- あなたは信頼できるイメージ(例:公式、確認済みのソース)を実行します。
- Dockerソケットを公開しないでください。
- 特権コンテナや危険な機能は避けます。
これが、多くの本番システムが依然としてroot権限のあるDockerを使用している理由です。
セキュリティの分離が最優先である場合は、後でルートレスDockerに切り替えることができます。近日中にそのガイドを公開する予定です。
Dockerの要件
Dockerをインストールおよび設定するには、システムが次の最低要件を満たしている必要があります。
- 64ビットのLinuxまたはWindowsオペレーティングシステム。
- もしLinuxを使用している場合、カーネルのバージョンは3.10以上である必要があります。
sudo権限を持つユーザーアカウント。- お使いのシステムBIOSでVT(仮想化技術)が有効になっています。[参照: CPUが仮想化技術(VT)をサポートしているか確認する方法]
- あなたのシステムはインターネットに接続されている必要があります。
ステップ1. システムを更新する
システムを最新の状態に保つことで、最新のセキュリティパッチを適用できます。
Debian システムを更新するには、次を実行してください:
sudo apt update && sudo apt upgrade -yステップ2. 古いDockerバージョンのアンインストール(任意)
注意: もし 新規インストールされたDebianシステム であれば、このステップはスキップできます。
以前にPodman、Docker、またはその他のコンテナランタイムをインストールしている場合は、最初にそれらを削除してください:
sudo apt remove -y docker docker-engine docker.io containerd runc podmansudo apt autoremove -yまた、残っているリポジトリも削除してください:
sudo rm /etc/apt/sources.list.d/docker.listsudo rm /etc/apt/sources.list.d/podman.listステップ3. 公式Dockerリポジトリを追加する
依存関係をインストールする:
sudo apt install -y ca-certificates curl gnupg lsb-release
Docker の GPG キーを追加します:
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgDockerリポジトリを追加してください:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null最新の Debian 13 では、apt のソースを最新化することが推奨されます。
これを行うには、次を実行してください:
sudo apt modernize-sourcesパッケージリストを更新する:
sudo apt updateステップ4. DebianにDocker EngineとDocker Composeをインストールする
Debian 13 に Docker エンジン、Docker Compose、およびすべての必要なコンポーネントをインストールするには、次のコマンドを実行してください:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginこのコマンドは次をインストールします:
- Docker エンジン
- Docker CLI
- Docker Composeプラグイン
ステップ5. Dockerを有効にして起動する
コマンドを使用してシステム起動時にDockerサービスを有効にする:
sudo systemctl enable dockersudo systemctl start dockerサービスの状況を確認してください:
sudo systemctl status docker
サンプル出力:
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-09-02 15:46:43 IST; 7min ago
Invocation: a87449e79b744dbbb36c7bfd131415fc
TriggeredBy: \u25cf docker.socket
Docs: https://docs.docker.com
Main PID: 3427 (dockerd)
Tasks: 9
Memory: 21.9M (peak: 23.4M)
CPU: 337ms
CGroup: /system.slice/docker.service
/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
[...]上の出力でわかるように、dockerサービスはロードされて実行中です。
ステップ6. Dockerのインストールを確認する
Dockerが正しくインストールされて動作しているかを確認するために、hello-worldテストコンテナを実行してください:
sudo docker run hello-world成功すると、確認メッセージが表示されます。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete
Digest: sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/ステップ7:Dockerのバージョンを確認する
インストールされているDockerのバージョンを確認するには、次のコマンドを実行してください:
sudo docker versionサンプル出力:
Client: Docker Engine - Community
Version: 28.3.3
API version: 1.51
Go version: go1.24.5
Git commit: 980b856
Built: Fri Jul 25 11:34:13 2025
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 28.3.3
API version: 1.51 (minimum version 1.24)
Go version: go1.24.5
Git commit: bea959c
Built: Fri Jul 25 11:34:13 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.27
GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da
runc:
Version: 1.2.5
GitCommit: v1.2.5-0-g59923ef
docker-init:
Version: 0.19.0
GitCommit: de40ad0ステップ8. sudoなしでDockerを管理する(オプション)
デフォルトでは、Dockerはroot権限を必要とします。
sudoなしでコンテナを管理するには、ユーザーをdockerグループに追加します:
sudo usermod -aG docker $USERnewgrp docker次に、sudo を使わずに Docker を管理できるか確認してください。
docker ps権限エラーが発生しなければ、問題なく進めます。
ステップ9. Dockerがルートフルモードで実行されているか確認する
実行 :
sudo docker info | grep -i rootlessもし何も表示されない場合、Dockerはroot権限モードで実行されています。
デーモンプロセスを実行しているのは誰か確認してください:
ps aux | grep dockerdサンプル出力:
root 3427 0.0 1.0 2045556 84480 ? Ssl 15:46 0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockここで
dockerdプロセスは root として実行されています。したがって、root権限のある Docker であることが確認されます。- デーモンはシステムの containerd ソケットを使用しています:
/run/containerd/containerd.sock。
ステップ10. Docker Compose を有効にする
Dockerには現在、Composeがプラグインとして含まれています:
docker compose version最新バージョンが必要な場合は、Docker Compose GitHub公式リリースページからスタンドアロンのComposeバイナリをダウンロードできます:
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --versionステップ11:Dockerの始め方
インストール後、Dockerでコンテナ化されたアプリケーションのデプロイを開始できます。私たちは例付きでDockerの使い方に関する詳細なガイドをまとめました。以下のリンクをご覧ください:
- Docker入門 | 初心者ガイド
[オプション] ルートレス Docker に移行
Rootlessモードを使用すると、セキュリティ向上のためにroot権限なしでDockerを実行できます。
ルートレスDockerモードのいくつかの重要な利点は次のとおりです:
dockerdは通常のユーザーとして実行されます。- たとえコンテナが脱出したとしても、ホスト上で持つのはユーザーレベルのアクセスだけです。
- 特に共有環境や信頼できない環境で、より強力な隔離を提供します。
Rootless Docker は次の場合に考慮する価値があります:
- あなたはマルチユーザー環境にいます。
- あなたは信頼されていない画像を使用しています。
- あなたはより強力な多層防御を望んでいます。
- あなたは厳格なコンプライアンス/セキュリティポリシーを守る必要があります。
ルートレスDockerが万能薬ではないことにご注意ください。しかし、コンテナの突破が致命的でなくなることは確かです。
もし、特にサードパーティのイメージを試す際に、最大限の隔離と安心感を求めるなら、以下のガイドで説明されているように、rootless Dockerに切り替えてください。
- Debian と Ubuntu Linux で Rootless Docker に移行する
トラブルシューティング
1. 古いリポジトリの競合
もし誤ってDebianにDocker用のUbuntuリポジトリを追加してしまった場合は、次のようにして削除できます:
sudo rm /etc/apt/sources.list.d/docker.listsudo apt updateそして、あなたのDebianシステムに正しいリポジトリを追加します。
2. Dockerデーモンが起動しない
Dockerサービスを再起動し、潜在的な手がかりのためにログを確認してください:
sudo systemctl restart dockersudo journalctl -u docker --no-pager3. ポート競合
コンテナでマッピングするポートがすでに使用されていないことを確認してください:
sudo ss -tulnp | grep 8000よくある質問(FAQ)
Q: rootful Dockerとrootless Dockerのどちらを使うべきですか?
A: Rootful: 設定が簡単で互換性が高く、ほとんどのユーザーに推奨されます。
Rootless: より安全ですが、設定がやや難しいです。
Q: 後で rootless Docker に切り替えるにはどうすればいいですか?
A: rootful Docker をアンインストールし、公式の Rootless Docker インストールガイド に従ってください。また、デフォルトで rootless モードで動作する Podman を使用することもできます。
Q: Docker Composeはデフォルトでインストールされていますか?
A: はい、Docker Compose v2 はプラグインとして含まれています。
結論
このステップバイステップガイドでは、最新のDebian 13システムでRootfulモードのDockerエンジンをインストールして設定する方法を学びました。また、Docker Composeのインストール方法といくつかの一般的なトラブルシューティングのヒントについても解説しました。
おすすめ読み物:
- DockSTARTerでDockerとDocker Composeをセットアップ
- 実行中のDockerコンテナを自動で更新する方法
- ctop – Linuxコンテナのためのコマンドライン監視ツール
- Portainer – Dockerを管理する最も簡単な方法
- PiCluster – シンプルなウェブベースのDocker管理アプリケーション
- Dockly - ターミナルからDockerコンテナを管理



