Skip to content

第3章 Docker Engineのインストール

3.1 古いパッケージのクリーンアップ

もし以前に古いバージョンのDockerがインストールされていた場合、新しいDocker Engineのインストール時に競合(エラー)が起きる原因になります。そのため、まずは以下のコマンドを実行して、古い関連パッケージをきれいに削除します。

bash
# 古いDocker関連のパッケージをすべて削除します(無い場合は無視されます)
sudo apt remove -y docker docker-engine docker.io containerd runc

3.2 Docker公式リポジトリの登録

最新の安定したDocker Engineをインストールするために、Docker公式のパッケージ配信サーバー(リポジトリ)をDebianのシステムに登録します。

まず、データの暗号化に必要な公式のGPG鍵をダウンロードして保存します。

bash
# 鍵を保存するためのフォルダを作成します
sudo mkdir -p /etc/apt/keyrings

# Docker公式のGPG鍵をダウンロードし、ファイルに書き込みます
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

次に、DebianがDockerの配布サーバーを参照できるように設定ファイルを追加します。

bash
# パッケージの取得元リストにDocker公式リポジトリを登録します
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.3 Docker Engineのインストールと動作検証

リポジトリの登録が終わったら、登録情報を読み込んでDockerのインストールを行います。以下のコマンドを実行します。

bash
# 登録したリポジトリの情報をシステムに読み込ませます
sudo apt update

# Dockerの本体、管理ツール、便利なプラグインを一括でインストールします
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

インストールが完了したら、Dockerのサービスを手動で起動し、正常に動いているかテスト用コンテナを使って確認します。

bash
# Dockerのバックグラウンド処理(サービス)を起動します
sudo service docker start

# テスト用コンテナ「hello-world」をダウンロードして実行します
sudo docker run hello-world

画面に「Hello from Docker!」とメッセージが表示されれば、Docker Engineのインストールは無事に成功しています。

3.4 非ルートユーザーでのDockerの実行許可

初期状態では、Dockerコマンドを実行するたびに sudo を最初につけて管理者権限で実行する必要があります。これは手間がかかるため、現在のログインユーザーを「dockerグループ」に登録し、sudo なしでコマンドを実行できるように設定を変更します。

bash
# 現在のユーザー($USER)をdockerグループに追加します
sudo usermod -aG docker $USER

この設定変更を適用するために、以下のコマンドを実行するか、一度Debianのターミナル(黒い画面)を閉じて再度起動し直してください。

bash
# グループ設定の変更を現在のログインセッションにすぐに反映させます
newgrp docker

# sudoなしで動作するかテストします
docker run hello-world