UbuntuにDockerをインストールする手順 公式手順を実機検証

Docker

この記事のポイント

  • 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 権限があるユーザーで実行してください。

UbuntuにDockerを公式手順で入れる流れ(概念図)
UbuntuにDockerを公式手順で入れる流れ(概念図)

apt の docker.io と公式 docker-ce は実際どれくらい違うのか

まず一番気になる差を実測しました。ubuntu:24.04 のコンテナ内で、Ubuntu標準の docker.io と、公式リポジトリを追加したあとの docker-ce の候補バージョンを apt-cache policy で並べて比較します。




ubuntu@linuxlab: ~
$ apt-cache policy docker.io
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
docker.io と docker-ce の候補バージョン比較(実測)
docker.io と docker-ce の候補バージョン比較(実測)

正直、これは意外でした。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 を有効にしていない最小構成では、ここで一気に差が開きます。

著者アイコン
著者アイコン

バージョン差が小さいなら docker.io でいいのでは、と思うかもしれません。でも公式リポジトリには別の利点があります。docker compose(Compose V2)と buildxプラグインとして同梱されること、そして新バージョンが Docker 社から直接いち早く届くことです。長く運用するなら公式リポジトリのほうが扱いやすい、というのが私の結論です。

なぜ公式リポジトリからインストールするのか

Ubuntu標準の docker.io は Ubuntu のパッケージメンテナがビルドしたもので、docker という単一パッケージにまとまっています。一方、Docker社が提供する公式リポジトリ(download.docker.com)は docker-ce(本体)・docker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-plugin に分かれており、公式が動作確認した最新の組み合わせをまとめて入れられます

とくに docker compose(ハイフンなしの新コマンド = Compose V2)を使いたいなら、公式の docker-compose-plugin を入れるのが一番素直です。ここは最初にはっきりさせておきます。

手順 1:旧バージョンがあれば削除する

過去に docker.iodocker-engine を入れたことがある場合は、まず削除してクリーンな状態にします。




ubuntu@linuxlab: ~
$ sudo apt-get remove docker docker-engine docker.io containerd runc
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 ではほぼ最初から入っていますが、念のため実行しておきます。




ubuntu@linuxlab: ~
$ sudo apt-get update
$ 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 以降の推奨配置場所です。




ubuntu@linuxlab: ~
$ sudo install -m 0755 -d /etc/apt/keyrings
$ 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アーキテクチャ(amd64arm64)も dpkg --print-architecture で自動判定されます。




ubuntu@linuxlab: ~
$ echo \
“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-plugindocker-compose-plugin の5つをまとめて入れます。




ubuntu@linuxlab: ~
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
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) …
docker-ce 一式の apt インストール実ログとバージョン(実測)
docker-ce 一式の apt インストール実ログとバージョン(実測)

取得サイズについての補足

今回の検証では最小の ubuntu:24.04 イメージから入れたため、依存パッケージ(systemd・iptables・python3 など)を含めて94パッケージ・133MBになりました。通常のUbuntuサーバー/デスクトップでは依存の多くがすでに入っているので、実際の取得量はもっと小さくなります。

インストール後、各コンポーネントのバージョンを確認します。実際に返ってきた値は次のとおりでした。




ubuntu@linuxlab: ~
$ docker –version
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 で実際にこのコンテナを起動しました。




ubuntu@linuxlab: ~
$ docker run –rm hello-world
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.
docker run hello-world の実出力(実測スクリーンショット)
docker run hello-world の実出力(実測スクリーンショット)

「Hello from Docker!」が表示されればインストール完了です。これは Docker daemon が Docker Hub から hello-world イメージを取得し、コンテナを起動できた証拠になります。--rm を付けておくと、終了したコンテナを自動で片付けてくれます。

後処理:sudo なしで docker を実行する

デフォルト状態では docker コマンドの実行に sudo が必要です。毎回打つのは面倒なので、現在のユーザーを docker グループに追加します。




ubuntu@linuxlab: ~
$ sudo usermod -aG docker $USER
# 設定を即時反映(ログアウト&ログインでも可)
$ 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 でどのファイルが置かれるか確認しました。




ubuntu@linuxlab: ~
$ dpkg -L docker-ce | grep -E ‘service|socket’
/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)
docker-ce が配置する systemd ユニットファイル(実測)
docker-ce が配置する systemd ユニットファイル(実測)

systemd とは、Ubuntu の起動・サービス管理を司る仕組みです。docker.servicedocker.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.04ubuntu:24.04 の両コンテナで公式リポジトリを参照したところ、両バージョンとも docker-ce 29.5.3stable チャンネルで配信されていることを確認しました。apt標準の docker.io も両方とも 29.1.3 でした。

Ubuntu 22.04 vs 24.04 docker-ce バージョン比較(実測)
Ubuntu 22.04 vs 24.04 docker-ce バージョン比較(実測)
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 が含まれているか確認してください。




ubuntu@linuxlab: ~
$ 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
# このファイルがあれば手順4は正常に完了している

②「permission denied while trying to connect to the Docker daemon」が出る

sudo なしで docker を使おうとして docker グループに入っていない場合に発生します。sudo usermod -aG docker $USER 後に newgrp docker か再ログインで解消します。




ubuntu@linuxlab: ~
$ groups
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.3docker compose v5.1.4containerd v2.2.4buildx 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 は問題なく動作します

コメント

タイトルとURLをコピーしました