WindowsパソコンでDockerを使うための3つの方法

Docker公式ロゴ2b

 普段から使っているWindowsPCでDockerコンテナをお手軽に動かすことができたらとても便利ですよね。

 「Docker Desktop」を利用することでそれが実現できます。

 本記事では、以下の3種類の方法をご紹介させていただきます。お好みに合わせてお選びください。

  1. VMwareやHyper-Vなどの仮想環境でLinuxマシンを用意してDocker(Linux版)をインストールする
  2. Windows上に「Docker Desktop」をインストールしてLinux版のDockerを使用する
  3. Windows上に「Docker Desktop」をインストールしてWindows版のDockerを使用する

 Dockerは初めてだけどLinuxは使える、という方は「1」の方法をおすすめします。CUI(Character User Interface)に慣れてると思いますので、構成もシンプルで軽快に操作できます。GUIツールの制約でやりたいことができない、ということがありませんので、IT上級者の方はおすすめです。

 Linuxに慣れていない方は、「2」の方法がよろしいかと思います。DockerコマンドはPowerShellを使って行いますし、Docker本体の設定はGUIが用意されています。

 「3」の方法はWindows版のDocker、つまりWindowsネイティブのコンテナを使うことができます。Microsoft社が提供しています最小構成のWindowsコンテナであるNanoserverやWindows Server Coreなどが利用可能です。すでにDockerに関してスキルをお持ちの方におすすめです。

(補足)
※「Docker Desktop」はWindows10(64bit、Pro/EnterpriseもしくはEducation、Build16299以降)がサポートされております。Hyper-V必須です。

※Windows10 Homeエディションで「Docker Desktop」を利用する場合は、バージョン2004以上がサポート対象となっています。WSL 2(Windows Subsystem for Linux 2)が必須です。

1. VMwareやHyper-Vなどの仮想環境でLinuxマシンを用意してDocker(Linux版)をインストールする

 Dockerはとても軽量かつシンプルな構成でして、仮想マシン上のLinuxでも問題なく使えます。

 仮想マシン上のLinuxにDockerをインストールするからといって、通常のLinuxへのインストールと異なることはありません。サポートされているディストリビューションも多く、メジャーなもの(UbuntuやCentOSなど)でしたらほぼ全てインストール可能です。

 インストール方法ですが、Docker公式サイトや一般サイトにある情報で問題なくインストールできるでしょう。

 本サイトでは、別記事「CentOS7へのDockerのインストール」でインストール方法をご紹介しております。よろしかったらご利用ください。

 Dockerを使用する場合は、仮想Linuxマシンへsshなどでログインしていただき、シェルにてdockerコマンドを実行してご利用いただくことになります。

 なお、Linuxベースのコンテナのみ作成可能です。

2. Windows上にDocker DesktopをインストールしてLinux版のDockerを使用する

 Docker社のホームページをご覧になると「Docker Desktop」という文字列が容易に見つかると思います。インストーラーが公開されていますので、ダウンロードしてインストールします。

 簡単にインストール方法をご紹介します。

「Docker Desktop」インストーラーを入手する

 Docker公式サイトより「Docker Desktop」のインストーラーをダウンロードして実行します。

 初めての方はstable(安定)版がおすすめです。

インストーラーを実行する

 入手した「Docker Desktop Installer.exe」をダブルクリックして実行します。

 以下のウインドウが表示されますので、ウインドウ右下の「OK」ボタンを押します。

 ただちにインストール処理が始まります。インストール中は以下のウインドウが表示されます。(私のPCでは3分ほどかかりました)

Docker Desktopインストール処理中(ファイルの展開)
Docker Desktopインストール処理中

 インストールが完了しますと以下のウインドウが表示されますので「Close」ボタンを押して画面を閉じます。

Docker Desktopインストール完了

 Docker Desktopは自動的に起動しませんので、PCを再起動してください。

 PCが起動しますと、Docker Desktopが自動的に起動されます。

 デスクトップ画面の右下にのタスクアイコンの中にDockerのクジラアイコンがありますので、マウスカーソルをアイコンの上に持っていってください。

 「Docker Desktop is starting」と表示された場合は、起動処理中です。しばらくお待ちください。

 起動が完了しますと「Docker Desktop is running」の表示に変わります。

 「Docker Desktop」をインストールしますと、最初の動作環境は下図とおりになります。

Docker Desktopの構成図

 つまり、「Docker Desktop」のインストーラによって、Windows10上のWSL 2にLinuxが作成され、そのLinux内にDocker本体がある、という構成になります。

 Dockerコンテナは仕様上、Dockerデーモンが動いているOSのコンテナのみ作成可能です。

 ですので、「Docker Desktop」のインストールが完了した時点の初期状態で作成可能なコンテナは、Linuxのコンテナということになります。

 1番目に紹介した方法もLinuxのコンテナしか作成できませんが、1番目と異なるのはDockerクライアントがWindows版ソフトウエアということです。

 「Docker Desktop」の場合、Docker本体が自由に操作できない環境内にカプセル化された状態ですのでDockerの環境設定などが変更出来ず不便なのですが、Docker関する設定が可能なI/Fが用意されてます。

 設定画面は以下の操作で表示できます。

  1. タスクバー内のクジラアイコンを右クリックするとメニューが表示される
  2. メニュー内の「Settings」をクリック

 以下のウインドウが表示されますので、ここで各種設定の変更が出来ます。

Docker Desktopの環境設定画面

3. Windows上にDocker DesktopをインストールしてWindows版のDockerを使用する

 Windows上でWindowsコンテナの作成や実行が出来るDocker環境を作る方法の紹介になります。

 Windows10にネイティブなDocker環境が実装されたころは、とても面倒なセットアップ作業を行う必要がありました。

 しかし現在は、「Docker Desktop」をインストールするだけで、Windows版のDockerを使用することができるようになっています。

 「Docker Desktop」のインストールは、前章で解説した手順と同じです。

 「Docker Desktop」のインストールが終わりましたら、PCを再起動してLinux版のDockerを「running」にします。

 その状態でタスクバー内のクジラアイコンを右クリックしてメニューを開いてください。

 メニュー内の「Switch to Windows Containers...」をクリックします。

 以下のウインドウが表示されますので「Switch」ボタンを押して下さい。

WindowsのDocker環境にスイッチする確認画面

 これだけで、Windowsコンテナが利用可能になります。

 現在起動中のpowershellでも良いですし、コマンドプロンプトでも良いですので、「docker version」コマンドを実行してみてください。

docker versionコマンドの実行結果

 矢印部分が「windows/amd64」となっていますので、Wondows版のDockerにスイッチしました。

 先ほどのメニューで「Switch to Linux Containers…」を押しますと、Linux版のDockerになります。

(保証無しなので自己責任で)Docker Desktopが「Starting」のまま起動できない場合の対処案

 私のPCで初めて「Docker Desktop」を起動したとき、いつまで経ってもクジラアイコンが「Docker is Starting」のまま変わらないという状態でハマっていました。

 「Docker Desktop」の「Troubleshoot」(設定画面上部の虫アイコンをクリック)の「Run Diagnostics」でログが見れましたので、中身を確認したところ、「localhost」と「timeout」という文字がWarningメッセージとして出力されていました。

 「localhost」の名前解決関連があやしいと思い、hostsファイルを見たところ、ipv6用のlocalhostの行がコメントアウトされていて、ipv4のlocalhostの行がコメントされていました。

 「Docker Desktop」のネットワーク周りの実装上の問題かも、と思いまして、ためしにipv4のlocalhostの行をコメントアウトしてPCを再起動したところ、「Running」になりました。

 ちなみに、インストールした「Docker Desktop」のバージョンは2.4.0.0(48506)のstable版です。

これは私個人の対処法ですので、どの環境でもうまくいくとは限らないです。

もし同様の対処を行う場合は「自己責任」でお願いします。

まとめ

 ご紹介した3つの方法、いかがでしたでしょうか。

 私はできるだけ余計なリソースを使わずにDockerを利用したいので、Linuxサーバを作って、そこにDockerをインストールして使っています。

 でも「Docker Desktop」の便利さはとても魅力的ですね。

 WindowsネイティブのDockerコンテナがこんなにお手軽に使えるのは素晴らしいです。

 ぜひご活用ください。

 最後までお読みいただいてありがとうございました。

コメント