この記事のポイント
- Ubuntu 24.04 LTS / 22.04 LTS の両方で、公式リポジトリから
docker-ce 5:29.5.3が入ることを実機(Dockerコンテナ)で確認しました(2026年6月15日時点) - よく言われる「apt の
docker.ioは何バージョンも古い」は、今のUbuntuでは正確ではありません。実測するとdocker.ioは 29.1.3 で、公式の 29.5.3 とはマイナー数版の差でした - それでも公式リポジトリを使う価値はあります。
docker compose(Compose V2)とbuildxがプラグインとして同梱され、最新版がいち早く届くからです - インストール後は
sudo usermod -aG docker $USERで docker グループに追加すると sudo なしで使えます - コードネームは
$(. /etc/os-release && echo "$VERSION_CODENAME")で自動検出されるので、22.04 でも 24.04 でも同じコマンドが使えます
UbuntuにDockerを入れるとき、apt install docker.io で済ませてしまう方をよく見かけます。一方で「それは古いからダメ、必ず公式リポジトリを使え」という解説も多いですよね。では実際どれくらい違うのか、気になりませんか。
この記事では、まずその差を実測で確かめたうえで、Docker公式が推奨する手順(公式GPGキーの追加 → 公式リポジトリの登録 → docker-ce のインストール)を Ubuntu 24.04 / 22.04 の公式Dockerイメージで一通り検証しました。結論から言うと、2026年6月15日時点で最新の docker-ce 29.5.3 が両バージョンとも問題なく入ります。
動作確認済み環境
Docker公式イメージ ubuntu:24.04(Noble Numbat)/ ubuntu:22.04(Jammy Jellyfish)で、docker run --rm によりコンテナ内で実コマンドを実行して検証しました(2026年6月15日 / arm64)。docker run hello-world はインストール済みの Docker 本体で実際に起動しています。コマンドは root または sudo 権限があるユーザーで実行してください。

apt の docker.io と公式 docker-ce は実際どれくらい違うのか
まず一番気になる差を実測しました。ubuntu:24.04 のコンテナ内で、Ubuntu標準の docker.io と、公式リポジトリを追加したあとの docker-ce の候補バージョンを apt-cache policy で並べて比較します。
docker.io:
Installed: (none)
Candidate: 29.1.3-0ubuntu3~24.04.2
Version table:
29.1.3-0ubuntu3~24.04.2 500 (noble-updates/universe)
24.0.7-0ubuntu4 500 (noble/universe)
$ apt-cache policy docker-ce # 公式リポジトリ追加後
Candidate: 5:29.5.3-1~ubuntu.24.04~noble

正直、これは意外でした。Ubuntu標準の docker.io は 29.1.3、公式リポジトリの docker-ce は 29.5.3。「何バージョンも古い」と言われがちですが、今の Ubuntu 24.04(noble-updates)ではマイナー数版の差しかありません。これは Ubuntu の docker.io パッケージが以前よりこまめに更新されるようになったためです。
ただし、リリース直後の noble(updates なし)に入っているのは古い 24.0.7 です。noble-updates を有効にしていない最小構成では、ここで一気に差が開きます。
なぜ公式リポジトリからインストールするのか
Ubuntu標準の docker.io は Ubuntu のパッケージメンテナがビルドしたもので、docker という単一パッケージにまとまっています。一方、Docker社が提供する公式リポジトリ(download.docker.com)は docker-ce(本体)・docker-ce-cli・containerd.io・docker-buildx-plugin・docker-compose-plugin に分かれており、公式が動作確認した最新の組み合わせをまとめて入れられます。
とくに docker compose(ハイフンなしの新コマンド = Compose V2)を使いたいなら、公式の docker-compose-plugin を入れるのが一番素直です。ここは最初にはっきりさせておきます。
手順 1:旧バージョンがあれば削除する
過去に docker.io や docker-engine を入れたことがある場合は、まず削除してクリーンな状態にします。
Reading package lists… Done
Building dependency tree… Done
Package ‘docker.io’ is not installed, so not removed
(すでに入っていなければ “not installed” と表示されます。無視してOKです)
注意
この削除コマンドは コンテナ・イメージ・ボリューム・設定ファイルを削除しません。それらは /var/lib/docker/ に残ります。完全にリセットしたい場合は別途 sudo rm -rf /var/lib/docker が必要ですが、データが消えるので実行前に必ず中身を確認してください。
手順 2:前提パッケージをインストールする
GPGキーのダウンロードに必要なパッケージを入れます。Ubuntu 24.04 ではほぼ最初から入っていますが、念のため実行しておきます。
$ sudo apt-get install -y ca-certificates curl
Reading package lists… Done
ca-certificates is already the newest version.
手順 3:Docker公式GPGキーを追加する
パッケージの改ざんを防ぐための GPG キーを取得します。GPGキーとは、配布元が本物であることを暗号で保証する仕組みです。/etc/apt/keyrings/ は Ubuntu 22.04 以降の推奨配置場所です。
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc
エラーが出なければ成功です。-fsSL は「リダイレクト追跡・エラー時に終了・プログレスバー非表示」をまとめたオプションです。
手順 4:Dockerリポジトリを追加する
Ubuntu のコードネームを自動検出して公式リポジトリを追加します。Ubuntu 24.04 なら noble、22.04 なら jammy が自動で入ります。CPUアーキテクチャ(amd64 や arm64)も dpkg --print-architecture で自動判定されます。
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
Get:1 https://download.docker.com/linux/ubuntu noble/stable arm64 Packages [26.9 kB]
Reading package lists… Done
$ cat /etc/apt/sources.list.d/docker.list
deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable
apt-get update の出力に download.docker.com が現れれば成功です。検証環境は arm64(Apple Silicon上のコンテナ)だったため arch=arm64 になっていますが、一般的なVPSの amd64 環境でも入るバージョンは同じ 29.5.3 です。
手順 5:Docker CE をインストールする
いよいよ本体です。docker-ce(本体)・docker-ce-cli(CLI)・containerd.io(コンテナランタイム)・docker-buildx-plugin・docker-compose-plugin の5つをまとめて入れます。
Get:2 …/stable arm64 containerd.io arm64 2.2.4-1~ubuntu.24.04~noble [20.2 MB]
Get:38 …/stable arm64 docker-ce-cli arm64 5:29.5.3-1~ubuntu.24.04~noble [15.1 MB]
Need to get 133 MB of archives.
Setting up containerd.io (2.2.4-1~ubuntu.24.04~noble) …
Setting up docker-ce (5:29.5.3-1~ubuntu.24.04~noble) …
Setting up docker-compose-plugin (5.1.4-1~ubuntu.24.04~noble) …

取得サイズについての補足
今回の検証では最小の ubuntu:24.04 イメージから入れたため、依存パッケージ(systemd・iptables・python3 など)を含めて94パッケージ・133MBになりました。通常のUbuntuサーバー/デスクトップでは依存の多くがすでに入っているので、実際の取得量はもっと小さくなります。
インストール後、各コンポーネントのバージョンを確認します。実際に返ってきた値は次のとおりでした。
Docker version 29.5.3, build d1c06ef
$ docker compose version
Docker Compose version v5.1.4
$ containerd –version
containerd containerd.io v2.2.4 193637f7
$ docker buildx version
github.com/docker/buildx v0.34.1 e0b0e77d
手順 6:インストールの確認
動作確認には docker run hello-world が一番シンプルです。今回はインストール済みの Docker で実際にこのコンテナを起動しました。
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.
3. The Docker daemon created a new container from that image …
4. The Docker daemon streamed that output to the Docker client.

「Hello from Docker!」が表示されればインストール完了です。これは Docker daemon が Docker Hub から hello-world イメージを取得し、コンテナを起動できた証拠になります。--rm を付けておくと、終了したコンテナを自動で片付けてくれます。
後処理:sudo なしで docker を実行する
デフォルト状態では docker コマンドの実行に sudo が必要です。毎回打つのは面倒なので、現在のユーザーを docker グループに追加します。
# 設定を即時反映(ログアウト&ログインでも可)
$ newgrp docker
# sudo なしで確認
$ docker run –rm hello-world
Hello from Docker!
セキュリティの注意
docker グループへの追加は実質 root 相当の権限を与えます(コンテナ経由でホストのファイルを操作できるため)。VPSなどの本番環境では、信頼できるユーザーにのみ追加してください。
systemd でDockerが自動起動するか確認する
通常のUbuntu環境では、apt でインストールすると Docker サービスが自動で有効化(enable)・起動されます。これは docker-ce パッケージが systemd のユニットファイルを配置するためです。実際に dpkg -L でどのファイルが置かれるか確認しました。
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket
$ sudo systemctl status docker
● docker.service – Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running)

systemd とは、Ubuntu の起動・サービス管理を司る仕組みです。docker.service と docker.socket が /usr/lib/systemd/system/ に置かれるため、サーバー再起動後も Docker は自動で立ち上がります。もし自動起動になっていなければ sudo systemctl enable --now docker で有効化できます。
Ubuntu 22.04 でも同じ手順で入る(バージョン比較)
Ubuntu 22.04 LTS(Jammy Jellyfish)でも、コードネームが jammy に変わるだけで同じ手順が使えます。手順4の echo コマンドは $(. /etc/os-release && echo "$VERSION_CODENAME") でコードネームを自動取得するので、同じコマンドをそのまま貼り付けて実行できます。
実際に ubuntu:22.04 と ubuntu:24.04 の両コンテナで公式リポジトリを参照したところ、両バージョンとも docker-ce 29.5.3 が stable チャンネルで配信されていることを確認しました。apt標準の docker.io も両方とも 29.1.3 でした。

| Ubuntu バージョン | コードネーム | 公式 docker-ce | apt標準 docker.io | LTS サポート終了 |
|---|---|---|---|---|
| 24.04 LTS | noble | 5:29.5.3 | 29.1.3 | 2029年4月 |
| 22.04 LTS | jammy | 5:29.5.3 | 29.1.3 | 2027年4月 |
よくあるエラーと解決策
①「E: Unable to locate package docker-ce」が出る
公式リポジトリが追加されていない状態で apt install docker-ce を実行すると発生します。手順3〜4をやり直し、sudo apt-get update の出力に download.docker.com が含まれているか確認してください。
deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable
# このファイルがあれば手順4は正常に完了している
②「permission denied while trying to connect to the Docker daemon」が出る
sudo なしで docker を使おうとして docker グループに入っていない場合に発生します。sudo usermod -aG docker $USER 後に newgrp docker か再ログインで解消します。
ubuntu adm cdrom sudo dip plugdev docker
# docker が含まれていれば OK
③「docker: command not found」が出る
インストール自体が完了していないか、PATH が通っていません。which docker を実行して /usr/bin/docker が返るか確認してください。返らない場合は手順5のインストールをやり直します。
まとめ
UbuntuへのDockerインストールは、公式リポジトリを追加する流れで完了します。今回の実測でわかったことを整理します。
- 2026年6月15日時点の最新は
docker-ce 29.5.3、docker compose v5.1.4、containerd v2.2.4、buildx v0.34.1 - apt標準の
docker.io(29.1.3)と公式docker-ce(29.5.3)の差は意外と小さい。それでも Compose V2・buildx 同梱と更新の速さで公式リポジトリが扱いやすい - Ubuntu 22.04 でも 24.04 でも同じコマンドで入る(コードネームとアーキテクチャは自動判定)
- インストール後は
dockerグループ追加で sudo なし運用、systemd で自動起動
Dockerを入れたら実際にコンテナを動かしてみましょう。docker compose の使い方やOllamaをDockerで動かす手順も参考にしてください。
VPSでDockerを使いたい方へ
- 自分のVPSを借りてDockerを動かすなら、東京リージョンがある Vultr が遅延の面でおすすめです
- 月$5〜の最小プラン(1vCPU / 1GB RAM)でも
docker-ceは問題なく動作します



コメント