# Windows の WSL Ubuntu で Docker を使う方法

Docker Desktop には有料版と無償版の 2 つのバージョンがあります。

Docker Desktop Community Edition(無償版):
Docker Desktop Community Edition(CE)は、一般的な開発者や個人利用向けの無償のバージョンです。Docker CLI、Docker Compose、Docker イメージのビルド、ローカルでのコンテナ実行など、基本的な Docker 機能を提供します。無料で使用できますが、商用利用やエンタープライズ環境での使用には制限があります。

Docker Desktop Enterprise(有料版):
Docker Desktop Enterprise は、エンタープライズ向けに提供される有料のバージョンです。追加のセキュリティ機能や管理ツール、エンタープライズサポートなど、より広範な機能とサポートが提供されます。

WSL 2 のセットアップ
Windows 10 では、WSL 2 を有効化し、Ubuntu を WSL 2 上にインストールします。Microsoft の公式ドキュメントに従って手順を実行してください。

Docker CLI のインストール
WSL Ubuntu ターミナルで以下の手順を実行します。

Docker の依存パッケージをインストール:

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

Docker の公式 GPG キーを追加

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

Docker のリポジトリを追加

echo "deb [arch=amd64 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

Docker CLI をインストール

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

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

sudo usermod -aG docker $USER

WSL を再起動して、Docker CLI を WSL Ubuntu 上で使用できるようになります。docker コマンドを使用して Docker イメージの取得やコンテナの作成・管理を行えます。

Docker 起動
Docker デーモン(サービス)を起動するために、以下のコマンドを実行します

sudo service docker start

Docker デーモンが正常に起動されたか確認するために、以下のコマンドを実行します

sudo service docker status

# いまさら Docker のメリットとデメリット

Docker をうまく使うために、メリットとデメリットを考慮しシステム構築する必要があります。

  • メリット

    ポータビリティ: Docker はコンテナ化されたアプリケーションやサービスをパッケージ化し、異なる環境(開発環境、テスト環境、本番環境など)で簡単に移動・実行できます。環境の違いによる互換性の問題を最小限に抑えることができます。

    軽量性: Docker は仮想化技術を使用せず、ホスト OS のカーネルを共有することでリソースの効率的な利用を実現しています。これにより、起動時間が短く、リソース消費量が少ないコンテナを実行できます。

    拡張性: Docker はマイクロサービスアーキテクチャやコンテナオーケストレーションツール(Kubernetes など)との組み合わせが容易です。アプリケーションを小さなコンポーネントに分割し、それぞれのコンポーネントを独立して管理することができます。

    再現性とスケーラビリティ: Docker イメージはアプリケーションとその依存関係を固めたものであり、再現性が高いです。同じイメージを使用して、開発環境から本番環境まで一貫性のある実行環境を簡単に構築できます。また、コンテナの数を簡単にスケールアップ/スケールダウンできます。

  • デメリット

    学習コスト: Docker は比較的新しいテクノロジーであり、初めて使用する場合は学習コストがかかる場合があります。Docker の概念やコマンド、Dockerfile の作成方法などを理解する必要があります。

    オーバーヘッド: Docker は追加のオペレーティングシステムレベルの仮想化レイヤーを必要とするため、軽量な仮想マシンに比べてわずかにオーバーヘッドが発生する可能性があります。

    セキュリティリスク: コンテナ内のアプリケーションやサービスが同じホスト OS を共有するため、セキュリティの注意が必要です。適切なセキュリティプラクティスを実施し、コンテナの隔離性を確保する必要があります。

    一部のリソースへの制限: Docker コンテナはデフォルトではホスト OS のリソースを制限された範囲で使用します。一部のリソースへのアクセスや制約が必要な場合は、追加の設定が必要になる場合があります。

2023-06-22
  • docker