Docker Desktop for Windows の構築
以前、投稿した記事で Windows Subsystem for Linux 2(以下、WSL 2 と呼びます) を構築する手順を解説いたしました。WSL 2 の構築手順をご覧になりたい方はこちらをクリックしてください。
その中で、Ubuntu Server を例に Windows 上で Linux OS を動作させる手順を解説いたしました。また、その Linux OS で WordPress を動作させることも簡単ではありますが紹介いたしました。
今回は、次のステップとして WSL 2 を構築した Windows PC へ Docker Desktop for Windows を構築する手順を解説したいと思います。
また、Docker 検証の一環として、Docker イメージを構築し Web サイトを動作させてみたいと思います。
Docker Desktop for Windowsの環境
簡単ではありますが、 Docker Desktop for Windows を構築する前に環境に関して触れてみたいと思います。
Windows 10 Pro | バージョン 21H2、OSビルド 19043.1165 |
WSL | バージョン 2 |
Docker Desktop for Windows | バージョン 4.0.0 (67817) |
なお、Docker Desktop for Windows を構築する Windows PC には、Windows 10 Pro をインストールした仮想マシンを使用します。
また、仮想マシンは入れ子になった仮想環境(Nested Hyprer-V)で動作しています。入れ子になった仮想環境(Nested Hyprer-V)の構築手順をご覧になりたい方はこちらをクリックしてください。
Docker Desktop for Windows の構築
では、Docker Desktop for Windows の構築手順を解説いたします。
Docker Desktop for Windows の入手
まず、Docker Desktop for Windows のインストーラーを入手方法を解説いたします。
Docker の公式サイトからインストーラーをダウンロードします。
Docker の公式サイトに接続し、[Download for Windows] をクリックします。
エクスプローラにてダウンロードフォルダを開きます。
「Docker Desktop Installer.exe」がダウンロードされています。
Docker Desktop for Windows のインストール
続いて、Docker Desktop for Windows をインストール手順を解説いたします。
「Docker Desktop for Windows の入手」でダウンロードした「Docker Desktop Installer.exe」を実行すると「Installing Docker Desktop」ウィンドウが表示されます。
[Configuration] にて、[Install required Windows components for WSL 2] がチェックされていることを確認し、[OK] をクリックします。
Docker Desktop for Windowsのインストールが完了すると、サインアウトが促されます。
[Close and log out] をクリックし、一度Windowsからサインアウトします。
Docker Desktop for Windows の起動
続いて、Docker Desktop for Windows の起動後の手順を解説いたします。
Docker Desktop for Windowsを起動すると、サービス契約の変更に関する情報が表示されます。
[I accept the terms] をチェック後、[Accept] をクリックします。
「dockerダッシュボード」ウィンドウが表示されます。
[Get started with Docker in a few easy steps!] にて、[Start] をクリックすると、チュートリアルが表示されます。また、[Skip tutorial] をクリックすると、チュートリアルがスキップされます。
本稿では、チュートリアルをスキップします。
「dockerダッシュボード」ウィンドウの [Containers / Apps] が表示されます。
インストール直後はコンテナは未作成です。
そのため、[No containers running] が表示されます。
Docker Desktop for Windows の検証
Docker Desktop for Windows の検証手順を解説いたします。
以下、4パターンの検証を実施します。
·hello-world コンテナを利用し、イメージやコンテナの実行検証を実施
·hello-world コンテナを利用し、イメージやコンテナの削除検証を実施
·Apache が格納された httpd コンテナを利用し、Web サイトの実行検証を実施
·Web サイトでのディレクトリマウントの検証を実施
コンテナの実行検証
まず、hello-world イメージを取得し hello-world の実行検証を実施いたします。
Windows PowerShell を起動し hello-world を実行するため、以下のコマンドレットを実行します。
docker run hello-world
hello-world コンテナが実行されました。
次に、「dockerダッシュボード」ウィンドウの [Images] を確認します。
hello-world イメージが追加されます。
Windows PowerShell から、以下のコマンドレットを実行することで Docker イメージを確認することができます。
docker images
hello-world イメージが確認できました。
次に、「dockerダッシュボード」ウィンドウの [Containers / Apps] を確認します。
hello-world コンテナが追加されています。
Windows PowerShell から、以下のコマンドレットを実行することで Docker コンテナを確認することができます。
docker ps -a
hello-world コンテナが確認できました。
コンテナの実行検証は OK です。
イメージ、コンテナの削除検証
続いて、取得した hello-world コンテナ や hello-world イメージの削除検証を実施いたします。
イメージを削除する場合、「dockerダッシュボード」ウィンドウの [Containers / Apps] を開き、hello-world コンテナの横にあるゴミ箱アイコンをクリックします。
なお、ゴミ箱アイコンをクリックすると、コンテナ削除確認メッセージが表示されます。
[Remove] をクリックします。
Windows PowerShell から、以下のコマンドレットを実行することで Docker コンテナを削除することができます。
docker rm [コンテナID]
hello-world コンテナが削除できました。
次に、イメージを削除する場合、「dockerダッシュボード」ウィンドウの [Images] を開きます。また、hello-world イメージのプルダウンメニューを開き、[Remove] をクリックします。
Windows PowerShell から、以下のコマンドレットを実行することで Docker イメージを削除することができます。
docker rmi [イメージID]
hello-world イメージが削除できました。
イメージの削除検証も OK です。
コンテナの実行検証(Web サイト)
続いて、httpd イメージを取得し Web サイトの実行検証を実施いたします。
Windows PowerShell から httpd イメージを取得するため、以下のコマンドレットを実行します。
docker pull httpd
httpd イメージが取得できました。
次に、Windows PowerShell から以下のコマンドレットを実行し Docker イメージを確認します。
docker images
httpd イメージが確認できました。
次に、Windows PowerShell から以下のコマンドレットを実行し Docker コンテナを実行します。
docker run -d -p 8080:80 httpd
httpd コンテナが実行できました。
次に、Windows PowerShell から以下のコマンドレットを実行し Docker コンテナを確認します。
docker ps -a
httpd コンテナが確認できました。
次に、Web ブラウザで ポート番号に8080番を指定し localhost に接続します。
httpd の確認ページが表示されました。
コンテナの実行検証(Webサイト)も OK です。
ディレクトリマウントの検証
続いて、Web サイトでのディレクトリマウントの検証を実施いたします。
「ディレクトリマウントの検証」でも「コンテナの実行検証(Web サイト)」で設定したポート番号を使用します。そのため、以下のマンドレットを実行し、httpd コンテナを、一度、停止します。
docker stop [コンテナID]
httpd コンテナが停止されました。
次に、マウントするディレクトリにテスト用の HTML ファイルを配置します。
次に、以下のコマンドレットを実行し、httpd コンテナを実行します。
docker run -v /c/Users/tamao/Desktop/html:/usr/local/apache2/htdocs -p 8080:80 -d httpd
httpd コンテナが実行できました。
コマンドレットの実行後に、Windows からファイル共有に関するメッセージが表示される場合があります。
[Close] もしくは [Don’t show again] をクリックします。
次に、Windows PowerShell から以下のコマンドレットを実行し Docker コンテナを確認します。
docker ps -a
新たに、httpdコンテナが追加されました。
次に、Web ブラウザで ポート番号に8080番を指定し localhost に接続します。
マウントしたディレクトリに配置したテスト用の確認ページが表示されました。
ディレクトリマウントの検証も OK です。
まとめ
以上が、Docker Desktop for Windows の構築と簡単な検証手順となります。
いかがでしたでしょうか。
今回は Docker Desktop for Windows の構築からですので、難しいことはやらず、慣れるために簡単なものから実施いたしました。
また、Windows PowerShell を使用してコンテナを構築しましたので、Windows PowerShell を常用している Windows ユーザーの方にも違和感はなかったのではないでしょうか。
Hyper-V などのハイパーバイザー型仮想化しか触れたことが無い場合、コンテナ型仮想化は、ややとらえずらい面もあるかとは思います。
例えば、コンテナ型仮想化は、ゲスト OS という概念がないため、Windows などの OS をインストールした仮想マシンが不要です。
ハイパーバイザー型仮想化は用途に合わせて仮想マシンを構築するので、1つのホストマシンで数台仮想マシンを構築するなんてことはざらです。
しかし、コンテナ型仮想化であればその必要はなく、Docker が構築できれば、あとは機能が含まれたイメージ(httpd や nginx、mysql など)をダウンロードしコンテナを追加または削除するだけの作業となります。
また、ハイパーバイザー型仮想化は仮想マシンを構築したあとに機能を追加し、また、設定変更が必要であったりと、環境ができあがるまでに時間がかかりましたが、コンテナ型仮想化であれば・・・言うまでもなく、素早く環境構築ができます。
用途によりますので、コンテナ型仮想化とハイパーバイザー型仮想化のどちらが優れているとは言えません。どちらにもメリット・デメリットがあります。
しかし、様々な仮想化技術を習得していれば、シチュエーションにあった仮想化が選択(提案)できるようになりますので、 ハイパーバイザー型仮想化を習得した次は、コンテナ型仮想化を習得してみてはいかがでしょうか。
もし、ハイパーバイザー型仮想化(Hyper-V など)に関しても詳しく知りたい方は、別の記事でまとめていますので、よろしければこちらをご覧ください。
次回は、Ubuntu イメージに Nginx をインストールしたオリジナル Docker イメージの作成手順を解説いたします。
最後までお読みいただきありがとうございました。
では。