目次
はじめに
本記事では、Windows 11のWSL2(Ubuntu 22.04)環境において、Docker Desktopに依存せずにDocker Engineを直接セットアップする方法を解説します。Docker Desktopは非常に便利なツールですが、リソース消費の大きさやライセンスに関する懸念、カスタマイズ性の限界など、いくつかのデメリットも存在します。
Docker Desktopを使わないメリット
|
メリット |
詳細 |
|
リソース消費の軽減 |
Docker Desktopはバックグラウンドで動作するサービスが多く、システムリソースを消費します。直接セットアップすることで、この消費を抑えられます。 |
|
ライセンスの制約回避 |
個人利用や小規模組織以外ではDocker Desktopの利用にライセンス料が発生する場合があります。WSL2上にDocker Engineを直接インストールすることで、この問題を回避できます。 |
|
高いカスタマイズ性 |
Docker Engineのバージョンや設定を細かく制御できるため、より柔軟な開発環境を構築できます。 |
|
起動タイミングの最適化 |
WSL2の起動と連動させることで、必要な時にDockerサービスを起動させることが可能です。 |
本記事は、WSL2環境がセットアップ済みで、Docker Desktop以外の方法でDockerを利用したい開発者の方々を対象としています。Docker Desktopの代替手段として、より軽量で自由度の高いDocker環境を構築したいとお考えの方は、ぜひ本記事をご参照ください。
セットアップ準備
(1) Ubuntu 22.04 のパッケージリスト更新
WSL2上にUbuntu 22.04 LTSをインストールしたら、まずパッケージリストを最新の状態に更新し、システム全体をアップグレードしておきましょう。これにより、セキュリティの脆弱性への対応や、より安定した環境で作業を進めることができます。
まず、以下のコマンドを実行して、利用可能なパッケージのリストを最新の状態にします。
sudo apt update
次に、アップグレード可能なすべてのパッケージをインストールします。-y オプションを付けることで、確認プロンプトに対して自動的に「はい」と応答させることができます。
sudo apt upgrade -y
これらのコマンドを実行することで、Ubuntu 22.04 環境が最新の状態に保たれ、後続のDocker Engineインストール作業をスムーズに進めるための準備が整います。
(2) Docker Desktop をインストールしている場合
もし Docker Desktop がインストール済みの場合、WSL2 上の Docker Engine と競合する可能性があります。 そのため、以下のいずれかの対応を行ってください。
-
Docker Desktop を終了する(タスクトレイから Quit)
-
Docker Desktop の「WSL integration」を無効化する
-
競合を完全に避けたい場合はアンインストールする
Docker Engine のインストール (Ubuntu 22.04 上)
このセクションでは、Ubuntu 22.04 環境に Docker Engine を直接インストールする手順を解説します。Docker Desktop を介さずに、WSL2 上で Docker の実行環境を構築しましょう。
まず、Docker の公式リポジトリをシステムに追加します。これにより、常に最新バージョンの Docker をインストールできるようになります。
(1) Docker公式リポジトリの追加
Docker EngineをUbuntu 22.04にインストールするためには、まずDocker公式のAPTリポジトリを追加する必要があります。これにより、常に最新バージョンのDockerをインストールできるようになります。
1. 必要なパッケージのインストール
まず、APTリポジトリ経由でパッケージをHTTPS経由で取得するために必要なパッケージをインストールします。
sudo apt install ca-certificates curl gnupg lsb-release -y
2. Dockerの公式GPGキーの追加
次に、Dockerリポジトリからのパッケージの信頼性を確保するために、公式GPGキーを追加します。
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
3. DockerのAPTリポジトリの設定
最後に、DockerのAPTリポジトリをシステムに追加します。
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
これらの手順により、Docker Engineのインストール準備が整います。
(2) Docker Engine, Docker CLI, Containerd.io のインストール
公式リポジトリの追加とGPGキーの設定が完了したら、いよいよDocker Engine本体、CLI、そしてコンテナランタイムであるcontainerd.ioをインストールします。まず、パッケージリストを最新の状態に更新しましょう。
sudo apt update
次に、以下のコマンドを実行して、Docker Engine、Docker CLI、containerd.io、そしてDocker Composeのプラグインもまとめてインストールします。
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
これにより、Ubuntu 22.04環境にDockerがセットアップされます。
(3) Dockerのインストール確認
Docker Engine、CLI、および関連コンポーネントのインストールが正常に完了したかを確認するために、いくつかのコマンドを実行しましょう。
まず、Docker CLIのバージョンを確認します。以下のコマンドを入力してください。
docker --version
このコマンドで、インストールされたDockerのバージョン情報が表示されれば、CLIが正しくインストールされていることがわかります。
次に、Dockerデーモンの状態やシステム情報などを確認します。以下のコマンドを実行してください。
docker info
docker info コマンドは、Dockerデーモンが稼働しているか、実行中のコンテナ数、イメージ数、ストレージドライバーの種類など、Docker環境に関する詳細な情報を提供します。エラーメッセージが表示されず、これらの情報が一覧表示されれば、Docker Engineが正しくセットアップされ、動作していると判断できます。
|
コマンド |
目的 |
|
|
Docker CLIのバージョン確認 |
|
|
Dockerデーモンの状態とシステム情報確認 |
これらの確認作業を経て、DockerがWSL2上のUbuntu 22.04環境で利用可能であることを確認できました。
Docker デーモンの自動起動と管理
Docker Engineのインストールが完了したら、Dockerデーモンが正しく動作し、WSL2 のディストリビューション起動時に自動的に起動するように設定しましょう。これにより、手動でデーモンを起動する手間が省け、いつでもDockerコマンドを実行できるようになります。
※WSL の環境によっては systemd が無効になっている場合があります。systemctl を利用する場合は、systemd が有効であることを確認してから作業を進めてください。
まず、Dockerサービスの現在の状態を確認します。以下のコマンドを実行してください。
sudo systemctl status docker
このコマンドで、Dockerサービスが「active (running)」と表示されていれば、正常に起動しています。
次に、システム起動時にDockerデーモンが自動的に起動するように設定します。以下のコマンドを実行してください。
sudo systemctl enable docker
これにより、次回以降のシステム起動時からDockerサービスが自動的に開始されるようになります。
もし、手動でDockerデーモンを起動、停止、または再起動したい場合は、以下のコマンドを使用します。
|
操作 |
コマンド |
|
起動 |
|
|
停止 |
|
|
再起動 |
|
これらのコマンドを状況に応じて使い分けることで、Dockerデーモンを柔軟に管理できます。
Docker コマンドを一般ユーザーで実行できるようにする設定
通常はインストール時に docker グループが自動で作成されますが、存在しない場合のみ、次のコマンドで作成してください。
まず、docker という名前のグループを作成します。
sudo groupadd docker
次に、現在ログインしているユーザーをこの docker グループに追加します。$USER は現在のユーザー名に自動的に置き換わります。
sudo usermod -aG docker $USER
この設定を有効にするには、一度ログアウトして再度ログインし直すか、以下のコマンドを実行して現在のシェルにグループ情報を読み込ませます。
newgrp docker
Docker コマンドの実行確認
これらの設定が完了したら、sudo なしで docker ps などのコマンドが実行できるか確認してください。正常に実行できれば、セットアップは完了です。
docker ps
参考元URL:https://docs.docker.com/engine/install/ubuntu/