【コマンド解説つき】Ubuntu 24.04にDockerをインストール

UbuntuにDockerをインストール

UbuntuへのDockerインストール方法について、Docker公式手順に従って解説しています。コマンドやオプションの意味も丁寧に説明しているため、「なぜこの操作が必要なのか」がしっかり理解できます。

インストールの流れ
  1. 既存のDocker関連パッケージを削除
  2. Dockerの公式リポジトリをソースリストに追加
  3. Dockerのインストール
  4. Docker Engineの動作確認
  5. 一般ユーザーでDockerを操作できるようにする

本記事では、Ubuntu 24.04 LTSを使用しています。

目次

既存のDocker関連パッケージを削除

過去にインストールした旧バージョンのDocker関連パッケージがシステムに残っていると、依存関係の競合やバージョンの不整合によって、インストールや動作に支障をきたす可能性があります。そのため、Dockerインストール前に、それらを削除してクリーンな状態にします。

Docker公式ガイドで削除を推奨しているパッケージ
  • docker.io
  • docker-doc
  • docker-compose
  • docker-compose-v2
  • podman-docker
  • containerd
  • runc

既存のDocker関連パッケージを削除する

$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Dockerの公式リポジトリをソースリストに追加

前提条件
  • 既存のDocker関連パッケージを削除していること。(前述の作業)
STEP

パッケージ情報の更新

$ sudo apt-get update

パッケージ情報を最新の状態に更新します。これにより、パッケージインストールでの依存関係の不整合を防ぐことができます。

STEP

リポジトリ追加に必要なパッケージをインストール

$ sudo apt-get install ca-certificates curl
  • ca-certificates:CA証明書
  • curl:URLからファイルをダウンロードするコマンド

HTTPS経由でリポジトリを追加するために必要なパッケージをインストールします。

STEP

GPGキーを保存するディレクトリを作成

$ sudo install -m 0755 -d /etc/apt/keyrings
  • -m 0755:パーミッション設定
  • -d /etc/apt/keyrings:ディレクトリを作成

APTの仕様に則り、GPGキーを配置するディレクトリを作成します。

キーリングの配置場所

sources.listのマニュアル

$ man sources.list
〜 省略 〜
The recommended locations for keyrings are /usr/share/keyrings for keyrings managed by packages, and /etc/apt/keyrings for keyrings managed by the system operator.
〜 省略 〜
  • パッケージによって管理されるキーリングの場合:/usr/share/keyrings
  • システム管理者によって管理されるキーリングの場合:/etc/apt/keyrings
STEP

Docker公式のGPGキーをダウンロード

$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  • -f: サーバーが返すエラーページ(HTMLの内容)を表示しない。
  • -s: サイレントモード ※進行状況やエラーメッセージを表示しない。
  • -S: サイレントモードでもエラーメッセージを表示する。
  • -L: リダイレクトを自動的に追跡して、新しいURLに再リクエストを送る。
  • -o: ダウンロードしたDockerのGPGキーを指定したファイルに保存。

Dockerの公式サイトからGPGキーを取得し、先ほどのディレクトリに保存します。

STEP

GPGキーのパーミッション設定

$ sudo chmod a+r /etc/apt/keyrings/docker.asc
  • a+r: すべてのユーザーaに読み取り権限rを追加

APTがGPGキーを読み取れるように権限を付与します。

STEP

Dockerの公式リポジトリを追加

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntuのバージョンに応じたDocker公式リポジトリをAPTソースリストに追加します。

この記事で使用した検証環境では、/etc/apt/sources.list.d/docker.listに次のような行が書き込まれました。

$ cat /etc/apt/sources.list.d/docker.list
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu   noble stable

設定例

debバイナリパッケージを提供するAPTリポジトリ(ソースコードではなく実行可能形式)
arch=amd64システムアーキテクチャ
signed-by=/etc/apt/keyrings/docker.ascGPGキーの場所
https://download.docker.com/linux/ubuntuDocker公式のAPTリポジトリのURL
nobleUbuntuのリリース名(Ubuntu 24.04 LTS のコードネーム)
stable安定版リポジトリ

Dockerのインストール

前提条件
  • 既存のDocker関連パッケージを削除していること。(前述の作業)
  • Dockerの公式リポジトリをソースリストに追加していること。(前述の作業)
STEP

パッケージ情報の更新

$ sudo apt-get update

パッケージ情報を最新の状態に更新します。これにより、先ほど追加したDockerの公式リポジトリを含む最新のパッケージ情報が反映されます。

STEP

Docker Engineをインストール

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce:Docker Engine(Community Edition)の本体
  • docker-ce-cli:Dockerのコマンドラインインターフェース
  • containerd.io:コンテナランタイム(コンテナの実行を管理する)
  • docker-buildx-plugin:ビルド拡張機能
  • docker-compose-plugin:Docker Composeプラグイン

Docker Engine、CLIツール、コンテナランタイムなど、主要コンポーネントをインストールします。

インストールが完了すると、/usr/bin/dockerにDocker CLIが配置され、docker、およびcontainerdサービスが自動起動します。

Docker Engineの動作確認

Docker Engineのインストールが完了したら、正しく稼働しているかを確認します。ここでは、サービスの稼働状況や動作確認のための具体的な手順を解説します。

STEP

Dockerサービスの稼働状況

$ systemctl status docker.service
$ systemctl status containerd.service

Dockerサービスが正常に起動しているかを確認します。ステータスがactive (running)であれば、正常に稼働しています。

自動起動していない場合

サービス起動の設定方法について後述していますので、ご確認ください。

STEP

Docker、Docker Composeのバージョン情報

$ docker -v
$ docker compose version

インストールしたDocker、およびDocker Composeのバージョンを確認します。

参考

ヘルプ表示は、--helpオプションを使用します。

$ docker --help
$ docker compose --help
STEP

テストコンテナを実行

最後に、Docker Engineが正常にコンテナを実行できるかをテストします。最も基本的な方法として、hello-worldというテスト用イメージを使用して、コンテナを起動します。

$ sudo docker run hello-world

上記コマンドが正常に完了し、以下のメッセージが表示されれば動作確認は成功です。

Hello from Docker!
This message shows that your installation appears to be working correctly.

hello-worldイメージは、DockerデーモンがDocker Hub(公式リポジトリ)から自動取得しています。

Docker運用環境の整備

一般ユーザーでDockerを操作できるようにする

通常、一般ユーザーがdockerコマンドを実行する場合、sudoを付与してroot権限で実行する必要があります。これは、Docker CLIがUnixソケットを介してDockerデーモンと通信しており、そのソケットの所有者がrootユーザーであるためです。

ただし、Unixソケットにはdockerグループにアクセス権が付与されているため、dockerグループに所属する一般ユーザーは、sudoを使用せずにDockerデーモンへコマンドを送信できます。

STEP

dockerグループを作成(既に存在する場合はスキップ)

一部のLinuxディストリビューションでは、パッケージマネージャーを使用してDocker Engineをインストールすると、dockerグループが自動的に作成されます。

# dockerグループが存在するか確認
$ getent group docker

dockerグループが存在しない場合、以下のコマンドで作成します。

$ sudo groupadd docker
STEP

ユーザーをdockerグループに追加

$ sudo usermod -aG docker $USER
  • -a:グループにユーザーを追加
  • -G:ユーザーを追加するグループ名
STEP

グループ設定を反映

# グループ設定を反映
$ newgrp docker

# 反映されたかを確認
$ groups

「一度ログアウトして再ログイン」や「OS再起動」でも可能。

STEP

一般ユーザーでテストコンテナを実行

$ docker run hello-world

以下のメッセージが表示されれば成功です。

Hello from Docker!
This message shows that your installation appears to be working correctly.

Dockerを自動起動する

Ubuntu環境では、Dockerインストール時の標準設定により、OS起動時にDockerサービスが自動起動します。

自動起動の設定確認

$ systemctl is-enabled docker.service
$ systemctl is-enabled containerd.service
  • 実行結果がenabledの場合:自動起動する
  • 実行結果がdisabledの場合:自動起動しない

自動起動の有効化・無効化

# 自動起動の有効化
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

# 自動起動の無効化
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

サービス起動・停止

# サービスの起動
$ sudo systemctl start docker.service
$ sudo systemctl start containerd.service

# サービスの停止
$ sudo systemctl stop docker.service
$ sudo systemctl stop containerd.service

参考サイト

Docker公式ドキュメント:Install Docker Engine on Ubuntu

デフォラボ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次