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つの部分で構成されています。
- curl部分:DockerのGPG公開鍵をダウンロード
- 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
コマンド構成
- echo部分:Dockerリポジトリ設定を出力
- 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