Ubuntu 20.04でのDockerインストール手順

Ubuntu 20.04環境にDockerを導入する手順について説明します。システムのディストリビューションを確認する必要がある場合は、以下のコマンドを使用してください。

1. ディストリビューションの確認方法

以下のコマンドからシステム情報を取得できます。特に1番のlsb_release -aが効率的です。

1. ディストリビューション名とバージョンの確認

lsb_release -a
  • 出力例
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04

2. OSバージョン情報ファイルの閲覧

cat /etc/os-release
  • 出力例
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 22.04.3 LTS"
VERSION_ID="22.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
  • 対応OS:systemdを搭載した現代Linuxディストリビューション(Ubuntu、Debian、CentOS、Fedoraなど)

3. Red Hat系ディストリビューションの確認

cat /etc/redhat-release
  • 出力例
CentOS Linux release 7.9.2009 (Core)
  • 対応OS:CentOS、RHEL、Fedoraなど

4. カーネルバージョンの確認(共通)

uname -a
  • 出力例
Linux ubuntu 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
  • 用途:カーネルバージョンとアーキテクチャ情報を表示

5. システム概要の簡易確認

hostnamectl
  • 出力例
Static hostname: ubuntu
Icon name: computer-vm
Chassis: vm
Machine ID: 1234567890abcdef1234567890abcdef
Boot ID: 1234567890abcdef1234567890abcdef
Virtualization: kvm
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.15.0-78-generic
Architecture: x86-64
  • 対応OS:systemdを使用する現代Linux

2. Dockerの既存インストール状況確認

方法1:Dockerコマンドの存在確認

docker --version
  • インストール済みの場合:バージョン情報が表示される(例:Docker version 24.0.7, build afdd53b
  • 未インストールの場合command not found: dockerエラーが発生

方法2:Dockerサービスのステータス確認

systemctl status docker
  • 実行中の場合Active: active (running) が表示される
  • 未インストールの場合Unit docker.service could not be found が表示される

方法3:Docker関連プロセスの確認

ps aux | grep dockerd
  • 実行中の場合dockerdプロセスが表示される
  • 停止中の場合grep自身のみが表示される

3. 古いバージョンのDockerをアンインストール(必要な場合)

sudo apt remove docker docker-engine docker.io containerd runc

4. パッケージリストの更新

sudo apt update

5. 必須依存パッケージのインストール

sudo apt install -y \
    ca-certificates \
    curl \
    gnupg \
    software-properties-common

各依存パッケージを個別にインストールすることも可能ですが、一度に複数を指定することで効率が向上します。

# 1. CA証明書のインストール
sudo apt install -y ca-certificates

# 2. curlのインストール
sudo apt install -y curl

# 3. GnuPGのインストール
sudo apt install -y gnupg

# 4. ソフトウェアリポジトリ管理ツールのインストール
sudo apt install -y software-properties-common

6. Docker公式GPGキーの追加

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

コマンド構造の解説

このコマンドは2つの部分で構成されています。

  1. curl部分:DockerのGPG公開鍵をダウンロード
  2. gpg部分:ダウンロードした鍵をシステム形式に変換して保存

各パラメータ詳細

curlのオプション
curl -fsSL https://download.docker.com/linux/ubuntu/gpg
  • -f:HTTPエラーが発生した場合に静かに失敗
  • -s:出力の進行状況を非表示
  • -S:エラー時にエラーメッセージを表示
  • -L:リダイレクトを自動的に処理
gpgのオプション
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • --dearmor:GPG鍵をASCII形式に変換
  • -o:出力ファイルパスの指定

結果確認

# 鍵ファイルの存在確認
ls -l /usr/share/keyrings/docker-archive-keyring.gpg

# 鍵情報の確認(gnupgが必要)
gpg --show-keys /usr/share/keyrings/docker-archive-keyring.gpg

7. Dockerリポジトリの追加

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

コマンド構成

  1. echo部分:Dockerリポジトリ設定を出力
  2. tee部分:設定をファイルに書き込み

リポジトリ記述の詳細

deb [arch=アーキテクチャ signed-by=鍵パス] リポジトリURL リリースコード ブランチ
  • arch=$(dpkg --print-architecture):現在のCPUアーキテクチャを取得
  • signed-by=...:このリポジトリの検証に使用するGPG鍵
  • $(lsb_release -cs):Ubuntuのリリースコード(例:focal)
  • stable:安定版リポジトリ

結果確認

cat /etc/apt/sources.list.d/docker.list

出力例:

deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable

8. Dockerエンジンのインストール

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

ネットワーク接続に問題がある場合は、国内ミラーサイトに切り替えることができます。

清華大学ミラーサイトへの変更

sudo sed -i 's/mirrors.aliyun.com/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list.d/docker.list
sudo apt-get update

アリババミラーサイトへの変更

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

タグ: Docker Ubuntu linux APT package-manager

7月16日 01:47 投稿