[Docker]Ubuntuにインストール

ツール

UbuntuでDocker環境を構築する際、公式のリポジトリを使用して最新版をインストールし、さらにsudoなしで実行できるようにするのが開発における標準的なセットアップです。

セキュリティに配慮した推奨手順をステップ・バイ・ステップで解説します。

ステップ1:システムの準備

まず、古いバージョンのDockerが残っている場合は削除し、インストールに必要な依存パッケージを導入します。

# パッケージリストの更新
sudo apt update

# 必要なパッケージのインストール
sudo apt install -y ca-certificates curl gnupg lsb-release

ステップ2:Docker公式GPG鍵の登録

セキュリティのため、ダウンロードするパッケージが本物であることを証明する「鍵」をシステムに登録します。

# 鍵を保存するディレクトリを作成
sudo mkdir -p /etc/apt/keyrings

# 公式GPG鍵を取得し、形式を変換して保存
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

ステップ3:公式リポジトリのセットアップ

Ubuntu標準のレポジトリではなく、Docker公式の最新版を取得できるように設定します。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ステップ4:Docker Engineのインストール

準備が整いました。最新のDocker本体と、便利なツール群(Composeなど)をまとめてインストールします。

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

ステップ5:一般ユーザーで使えるように設定(重要)

初期状態では、Dockerコマンドは root 権限(sudo)が必要です。これを、現在ログインしている一般ユーザーでも叩けるように設定します。

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

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

設定の即時反映

通常、グループへの追加を反映するにはログアウトが必要ですが、以下のコマンドで現在のセッションに即時反映させることができます。

newgrp docker

ステップ6:動作確認

最後に、すべてが正しく設定されたか確認します。sudo をつけずに実行してください。

docker run hello-world

[!TIP]

「Hello from Docker!」 というメッセージが表示されれば成功です!

これで、コンテナのダウンロード、起動、実行が一般ユーザー権限で行えるようになりました。

もしエラーが出たら?(トラブルシューティング)

1. 権限エラーが出る場合

もし permission denied と出る場合は、一度PCを再起動するか、ログアウト・再ログインを試してください。

2. インターネット接続エラーが出る場合

コンテナ内から通信ができない場合は、Dockerサービスを再起動すると解決することがあります。

sudo systemctl restart docker

3. 自動起動の設定

PCを起動したときに自動でDockerが立ち上がるようにするには、以下のコマンドを実行しておきましょう。

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

まとめ:今回インストールしたもの

  • Docker Engine: コンテナを動かす本体
  • Docker Compose: 複数のコンテナをまとめて管理するツール
  • Non-root権限: 開発をスムーズにするためのユーザー設定

これでUbuntu上のDocker開発環境は完璧です。ハッピー・コンテナライフ!

コメント

タイトルとURLをコピーしました