(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Windows】DockerDesktop2.2をインスール&起動する

スポンサーリンク

はじめに

DockerToolboxの後継ツールである「DockerDesktop」をWindows端末にインストールしました。
Hyper-Vを有効化する必要がありますが、本記事ではそれらのインストールと簡単な動作検証を行いました。

環境情報
  • Windows 10 Enterprise
  • Docker Desktop 2.2.0.3

事前準備 : HyperVの有効化

systeminfoにてHyper-Vの要件が

VM モニター モード拡張機能: はい
ファームウェアで仮想化が有効になっています: はい
第 2 レベルのアドレス変換: はい
データ実行防止が使用できます: はい

上記になっていることを確認しPowershellを管理者権限で開いて以下コマンドを押下すれば

PS C:\WINDOWS\system32> DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

以下のように標準出力され再起動が行われます。

展開イメージのサービスと管理ツール
バージョン: 10.0.X
イメージのバージョン: 10.0.X

機能を有効にしています
[=================== 
操作は正常に完了しました。
Windows を再起動してこの操作を完了してください。
今すぐコンピューターを再起動しますか? (Y/N)

そうするとHyper-V マネージャーが以下にインストールされています。

C:\WINDOWS\System32
$ ls -l mmc.exe
-rwxr-x---+ 2 NT SERVICE+TrustedInstaller NT SERVICE+TrustedInstaller ... mmc.exe

Docker Desktopをインストールする

以下サイトから画面に沿ってインストールを行います。

その中で「Create a Docker ID.」ということでメールアドレス等を入力すると以下のようなタイトルのメールが届き

[Docker Hub] Please confirm your email address

その中で認証を済ませば以下のようにインストーラが入手できます。

f:id:mtiit:20200214152226p:plain
DockerDesktopのインストール

ファイルの実体は「Docker Desktop Installer.exe」で、起動して進めていけば「Close and restart」という文言の後に再起動を行えば次回起動時から以下のようにDocker Desktopが自動的に立ち上がります。

f:id:mtiit:20200214153130p:plain
再起動後に自動で立ち上がる

起動が完了すれば

Docker Desktop is now up and running!

といった文言が確認でき、確かにHyper-Vのマネージャーからは以下のように確認できます。

f:id:mtiit:20200214153416p:plain
DockerDesktopVMとして展開されている

Docker

PowerShell等のターミナルを開いてdockerコマンドを押下すればパスが通っていて使える状態になっています。

$ docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             ...
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            ...
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1...
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9...
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

実体を見てみましたが、以下のディレクトリにコマンド群が格納されています。

C/Program Files/Docker/Docker/resources/bin/
├── docker.exe
├── docker-compose.exe
├── docker-credential-desktop.exe
├── docker-credential-wincred.exe
├── kubectl.exe
└── notary.exe

以下はDockerコマンドの試し打ちの例です。

Kubernetes

タスクバーにあるDockerDesktopのアイコンを右クリックすると「Setting」という項目があり、そこにてKubernetesを有効化できます。

f:id:mtiit:20200214155140p:plain
Docker設定画面

一番最後のチェックをつけるとdockerコマンドからkubernetesのコンテナが確認できます。

$ docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED              STATUS              PORTS               NAMES
... "/compose-controller…"   ...  k8s_compose_compose-7b7c5cbbcc-gkmpk_docker
... "/api-server --kubec…"  ... k8s_compose_compose-api-dbbf7c5
...

Kubernetesとして利用できる状態になっているのでマニフェストをapplyすればポッド群を展開できます。

PS C:\WINDOWS\system32> kubectl config get-contexts
CURRENT   NAME                 CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop       docker-desktop   docker-desktop
          docker-for-desktop   docker-desktop   docker-desktop

以下はkubectlコマンドの試し打ちの例です。

終わりに

Hyper-Vにminikubeを入れようとしたのですが以下のようにメモリ不足で立ち上がらなかったのでDockerDesktopにしました。

Hyper-V\Start-VM : 'minikube' failed to start.
Not enough memory in the system to start the virtual machine minikube.

DockerDesktop一つを入れるだけでk8s環境も入るのでHyper-Vが使える環境という制約はあるものの使い勝手はいいと思います。

以上、ご参考になれば幸いです。