やりたいこと
Raspberry Pi 3 B+にDockerをインストールしたい。
インストール方法3つ
Raspberry PiはDebian系なので、Debianのインストール方法を参照しながら進める。
インストール方法は3つある模様。
- aptリポジトリを利用
- パッケージから
- 簡易インストールスクリプトから
インストール方法を検索すると、簡易インストールスクリプトを使った方法がヒットする。
これでも間違いではないが、 公式ドキュメントを見ると以下のように記載されている。
Docker provides a convenience script at https://get.docker.com/ to install Docker into development environments non-interactively. The convenience script isn't recommended for production environments, but it's useful for creating a provisioning script tailored to your needs.
これは開発環境用であり、本番環境では推奨していないということ。
ラズパイは個人で利用することがほとんどのため、どちらでも良いと思うが
バージョンアップの手間などはapt経由のほうが楽だと個人的は思うので、1の方法で解説する。
1. 古いパッケージを削除する
-
docker.io
-
docker-compose
-
docker-doc
-
podman-docker
このあたりの古いパッケージが入っているとうまくインストールできないので削除しておく必要あり。
ただし、通常RaspberryPiを構築したばかりでは入っていることはないのでスキップする。
気になる場合はこちらを参照:Debian
2. Dockerのaptリポジトリを使えるようにする
「aptからインストールすると、古いバージョンのDockerがインストールされてしまう」という問題は、これを実施していないことが原因である。
公式ドキュメントに記載のある以下のコマンドを上から順番に実行していけば問題ない。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- GPG鍵を追加する
- 「このリポジトリから取得したパッケージが本物かどうか」を検証するための署名鍵
- aptに新しいリポジトリを登録する
- 新しいリポジトリ情報を読み込み、最新版をインストールする
3. Dockerのインストール
公式ドキュメントに記載のある以下のコマンドを実行するだけ。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. 動作確認
systemctlコマンドから、動いているか確認する。
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-09-27 21:19:18 JST; 1min 2s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 10376 (dockerd)
Tasks: 11
CPU: 2.681s
CGroup: /system.slice/docker.service
└─10376 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
9月 27 21:19:15 raspberrypi dockerd[10376]: time="2025-09-27T21:19:15.981759869+09:00" level=info msg="Loading containers: start."
9月 27 21:19:17 raspberrypi dockerd[10376]: time="2025-09-27T21:19:17.999200993+09:00" level=info msg="Loading containers: done."
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.163027936+09:00" level=warning msg="WARNING: No memory limit support"
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.163259238+09:00" level=warning msg="WARNING: No swap limit support"
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.163587101+09:00" level=info msg="Docker daemon" commit=249d679 containerd-snapshotter=false storage-driv>
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.164933816+09:00" level=info msg="Initializing buildkit"
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.533202941+09:00" level=info msg="Completed buildkit initialization"
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.615506437+09:00" level=info msg="Daemon has completed initialization"
9月 27 21:19:18 raspberrypi dockerd[10376]: time="2025-09-27T21:19:18.615884144+09:00" level=info msg="API listen on /run/docker.sock"
9月 27 21:19:18 raspberrypi systemd[1]: Started docker.service - Docker Application Container Engine.
動いていなければ sudo systemctl start docker
。
また、最新版がインストールされていることも確認できる。
$ docker --version
Docker version 28.4.0, build d8eb465
まとめ
- しっかりインストールするなら、aptを利用した方法を推奨する
- aptで最新版をインストールするためには、Docker社のaptリポジトリを追加する必要がある
- systemctlで動作確認