WindowsでDocker環境を試してみる


概要

軽量と話題のDockerを自分の作業PC Windows10にインストールして試してみる
WindowsでDockerを動かすためにはいくつかの方法があるみたいだけど今回試してみたのはDocker for Windows

↓のスペックでDocker for Windowsがサクサク動くのかどうか、、、

  • Windows 10 Pro 64bit
  • Intel Core m3 CPU @ 0.90GHz 1.51 GHz
  • メモリ 4GB

2022年1月:
ずっとHyper-V版使用していましたが、Docker Desktop WSL 2 バックエンド版としてこの投稿の記載内容刷新しました!
↓に書いてある通りですが、特にリソース消費を劇的に改善していますに感動しました!!

https://matsuand.github.io/docs.docker.jp.onthefly/desktop/windows/wsl/

注意事項

上記黄色枠記載の通りですが、Docker Desktopは、2022年2月1日から有料化されます。
ただし、従業員数250人未満、年間収益1,000万ドル未満、個人使用、教育目的、非商用のオープンソースプロジェクトで利用可能なので、その範囲内で利用しましょう。

できるようになること

  • Windows10環境でのDocker環境の構築

参考書籍

わかりやすくてDockerの入門書的な良本です^^

プログラマのためのDocker教科書 第3章

【Kindle版】プログラマのためのDocker教科書

Docker管理(Kubernetes)まで含めるとこちら↓

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

【Kindle版】仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

およその作業時間

30分

動作システム要件

合わせて以下の手順のチェックと有効化のためにPC再起動を行う

  1. Windows ボタンを右クリックし、[アプリと機能] を選択
  2. 右側の関連する設定にある [プログラムと機能] を選択
  3. [Windows の機能の有効化または無効化] を選択
  4. [Virtual Machine Platform] [Windows Subsystem for linux] を選択して、[OK] をクリック

必要な知識

  • Docker知識^^;

インストール手順

以下のサイトからDocker Desktop Installer.exeをダウンロードしてインストール後、インストールされたDocker Desktopを実行するだけ
WSL 2 の事前インストールが必要な記載もドキュメント上にありましたが、Docker Desktop Installer.exe の中でインストールされたので事前インストール不要で大丈夫でした。
私は以下の状態(WSL 2インストールされていない状態)でインストールしています

>wsl --list --verbose
LinuxWindows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
https://aka.ms/wslstore

[公式ページ:インストール手順]
https://docs.docker.jp/docker-for-windows/install.html
[公式ページ:ダウンロードサイト]
https://hub.docker.com/editions/community/docker-ce-desktop-windows/


インストール手順詳細

Docker Desktop Installer.exe をクリックして画面に従っていくだけです!


最初にWSL 2のインストールチェックボックスがあるのでチェックしておきます。
後はインストールが終わるのを待つだけ。。。

最後に同意画面が表示されるので内容確認、チェック、Acceptします。
以上です。

インストールが完了したらWindowsのスタートメニューからDocker Desktop起動してみましょう。
ここからのtutorialDashboadがまた感動でした!
ちなみにこの時点でWSL 2がインストールされてました。

>wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  docker-desktop-data    Running         2

Docker Desktop起動


起動してます(1、2分待ちます)


なるほど。2分のtutorialがある。2分であればやってみましょう。
ということでStartボタン


左画面の説明、右画面のプロンプトというスタイルでtutorialが進みます。
プロジェクトという概念があって、git リポジトリにサンプルプロジェクトがあるようですね。
tutorialの通りコマンド実行します。(画面中央のコマンドが書かれた青いボタンを押すと勝手に実行されます)
右画面でコマンド実行が終わったらNext Stepをクリック。


プロジェクトが出来上がったらビルドするようです。
右画面でコマンド実行が終わったらNext Stepをクリック。


最後にrun(Dockerイメージを起動)します。
これで起動するようです(ほんとに?)とりあえずtutorialを進めます。


最後は自分でDockerイメージ変更したらShareしようね。ということなのでこのコマンドは実行せず(実行できないようにボタン押下できませんでした)、Doneで終了です。
諸々のダウンロード時間があったので2分では正直終わらなかったですが、そうは言っても5分くらいでした。


で、次に表示されたのがこれから大変お世話になるDashboad画面でした。
とりあえずrunnningしているappがBrowserで動くよ。ということでクリック。


おぉ!ほんとに動いてました!!ちょー簡単。

Dashboadに戻って他を確認してみると。。。
左から

  • OPEN IN BROWSER
  • CLI
  • START(or STOP)
  • RESTART
  • DELETE

のようです。いつの間に1つ1つコマンド実行する時代じゃなくなってたのですね^^;
CLIボタン押すと、Docker上のプロンプトが立ち上がって超便利。

インストールとtutorial以上です。Dashboad便利そうですね!

では、結果

メモリ使用量

【Docker Desktop起動前】

最近メモリ残があまりなく。。。Docker Desktop起動するかな。。。

【Docker Desktop起動後】

おぉ起動しました!以前は最低1GB必要だったのに!!
この後、Dockerイメージ起動しましたが、微増でした。公式ページ記載の通り、使った分だけ(動的割当)ということですね。

【Docker Desktop起動後しばらく放置】

ここまで下がりました。
起動時3.2GB、放置で3.5GBなので、実質0.3GBのメモリでOK!?
凄い!この軽さでDocker(と、Dashboad)が起動できるのは感動です!!

起動時間

・Docker Desktop起動時間:約1分!

・コンテナ起動時間(初回):約2分
 以下のコマンドをコマンドプロンプトで実行してubuntuコンテナを起動
 初回はDocker Hubからイメージのダウンロードをしてくれるため時間がかかる
 それでも2,3分程度(ネットワーク環境に依存)

> docker run -it ubuntu bash

・コンテナ起動時間(2回目以降):3秒!!
 2回目以降はローカルキャッシュしているイメージを使うため3秒と言わず一瞬^^

Docker Desktop上の画面にも自動で追加されました。

コンテナのページも以下の通り追加されました。

まとめ

確かにサクサク動く!
Docker Desktop WSL 2 バックエンド版、Dashboadで劇的進化してました!!
私のDocker Desktop 知識 Update していなかった時間が長かっただけに進化にびっくりで大興奮でした^^

参考

Docker全体像のイメージ図は以下を参照

 Dockerの基本機能と全体像のイメージを整理してみる

EC2でもやってみました

 AWS EC2 でDocker環境を無料で試してみる

AWS ECSでもやってみました

 AWS ECSでDocker環境を試してみる

Docker管理(Kubernetes)の勉強はこちら

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

【Kindle版】仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerをさらに勉強したい方は以下を参照
参考書籍がわかりやすかったので実際にやってみました
[参考書籍]

 
WindowsでDocker Hubからイメージをダウンロードしたりアップロードしたりしてみる
 Docker for Windowsでイメージからコンテナを生成/操作してみる
 Windowsで構成情報をDockerfileに定義してイメージを作成してみる
 WindowsでDocker Composeを使ってマルチコンテナ環境を作ってみる
 WindowsでDocker Machineを試してみる