Contents
Ubuntu 22.04 に Docker CE と Docker Compose v2 をインストールする手順
Ubuntu 22.04(コードネーム Jammy Jellyfish)は LTS 版として長期間のサポートが受けられます。その上でコンテナ基盤を構築したい場合、公式リポジトリから提供されている Docker Engine(docker‑ce) と Compose プラグイン(docker-compose-plugin) を apt で導入するのが最も安全かつ推奨された方法です。本記事では、余計なアプリ構築手順に踏み込まず、Docker 本体と Compose v2 のインストール・基本設定・トラブルシューティングまでを網羅します。
1. 前提条件と準備
このセクションでは、インストール作業に入る前に確認すべき点と、必要なパッケージの概要を説明します。
- 対象 OS:Ubuntu 22.04(64 ビット)
- 権限:
sudoが使用できるユーザーで実行してください。 - ネットワーク:公式リポジトリへ HTTPS でアクセスできる環境が必要です。
ポイント
公式リポジトリを利用すれば、Docker のセキュリティパッチや機能追加が自動的に apt のアップデート対象になります。手動でバイナリをダウンロードする方法と比べて保守性が格段に向上します。
2. Docker の公式リポジトリを登録する
2‑1. 必要なツールのインストール
Docker リポジトリを追加する際に必要となる基本的なパッケージです。ca-certificates と curl は HTTPS 通信、gnupg は GPG 鍵管理、lsb-release はディストリビューション情報取得に使用します。
|
1 2 3 |
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release |
2‑2. Docker の GPG 鍵を取得して保存
公式鍵はパッケージ改ざん防止の根幹です。取得した鍵は /usr/share/keyrings/docker-archive-keyring.gpg に格納し、以降の apt リポジトリ定義で参照します。
|
1 2 3 |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
2‑3. apt 用リポジトリ情報を追加
/etc/apt/sources.list.d/docker.list に安定版(stable)チャンネルだけを登録します。アーキテクチャは自動取得し、鍵ファイルのパスも明示しています。
|
1 2 3 4 5 |
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
補足
$(lsb_release -cs)は現在の Ubuntu のコードネーム(jammy)を自動的に展開します。手入力ミスを防げるので必ずこの形で記述してください。
3. Docker Engine と Compose v2 プラグインのインストール
3‑1. パッケージリストの更新と本体インストール
リポジトリ登録後は再度パッケージ情報を取得し、Docker 本体・CLI・Containerd・Compose プラグインを一括で導入します。
|
1 2 3 |
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin |
3‑2. インストール結果の確認
以下のコマンドでバージョン情報とサービス状態が期待通りかチェックしてください。
|
1 2 3 4 |
docker --version # 例: Docker version 24.0.5, build abcdefg docker compose version # 例: Docker Compose version v2.20.2 systemctl is-active docker # active と表示されれば起動中 |
ポイント
docker-compose-pluginが提供するのは Compose v2 のプラグイン形式です。従来の独立バイナリdocker-composeは不要になるため、混在した環境で起こりがちなパス競合を回避できます。
4. 基本的な利用例と動作確認
Docker が正しく機能するかどうかは、公式のテストイメージで簡単に確かめられます。ここでは最も軽量な hello-world イメージを実行し、コンテナ起動までの流れを示します。
|
1 2 |
sudo docker run --rm hello-world |
期待される出力は以下のようになります(一部抜粋):
|
1 2 3 4 |
Hello from Docker! This message shows that your installation appears to be working correctly. ... |
このメッセージが表示されたら、Docker Engine と Compose v2 のインストールは完了です。
5. インストール後の推奨設定
5‑1. 非 root ユーザーで Docker コマンドを実行できるようにする
sudo を毎回入力したくない場合は、利用者を docker グループに追加します。
|
1 2 3 |
sudo usermod -aG docker $USER newgrp docker # 直ちにグループ変更を反映させる(再ログインでも可) |
注意
グループへの追加は権限昇格につながります。信頼できるユーザーだけに付与してください。
5‑2. デーモンの最小化設定(任意)
/etc/docker/daemon.json に以下を記載すると、不要なプロキシや内部通信が無効化され、攻撃対象が減ります。
|
1 2 3 4 5 6 |
{ "userland-proxy": false, "live-restore": true, "icc": false } |
設定後は Docker デーモンを再起動します。
|
1 2 |
sudo systemctl restart docker |
6. よくあるトラブルと対処法
| エラー例 | 主な原因 | 解決策 |
|---|---|---|
permission denied while trying to connect to the Docker daemon socket |
現在のユーザーが docker グループに所属していない |
sudo usermod -aG docker $USER 後、再ログインまたは newgrp docker |
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? |
Docker デーモンが停止している | sudo systemctl start docker で起動、systemctl status docker で状態確認 |
Error response from daemon: pull access denied for … |
リポジトリ名やタグの記述ミス、認証が必要なプライベートレジストリへのアクセス | 正しいイメージ名・タグを指定し、プライベートレジストリの場合は docker login で認証 |
port is already allocated |
ホスト側で同一ポートが既に使用中 | sudo lsof -i:PORT番号 で占有プロセスを確認し、別ポートへ変更またはプロセス停止 |
7. まとめ
- 公式リポジトリの登録 → GPG 鍵取得・apt ソース追加
- Docker Engine と Compose v2 のインストール →
docker-ce,containerd.io,docker-compose-pluginを一括導入 - 動作確認 →
hello-worldコンテナで正常起動を検証 - 利用者権限の調整 →
dockerグループへの追加で非 root 実行を実現 - 基本的なトラブルシューティング を押さえておけば、インストール失敗や初期設定ミスに迅速に対処可能
以上の手順を踏めば、Ubuntu 22.04 上に安全で最新の Docker 環境(Compose v2 対応)を構築できます。以降は公式ドキュメントや各種チュートリアルを参照しながら、コンテナ化したアプリケーションの開発・デプロイへとステップアップしてください。