はじめに
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
その中で認証を済ませば以下のようにインストーラが入手できます。
ファイルの実体は「Docker Desktop Installer.exe」で、起動して進めていけば「Close and restart」という文言の後に再起動を行えば次回起動時から以下のようにDocker Desktopが自動的に立ち上がります。
起動が完了すれば
Docker Desktop is now up and running!
といった文言が確認でき、確かにHyper-Vのマネージャーからは以下のように確認できます。
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を有効化できます。
一番最後のチェックをつけると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が使える環境という制約はあるものの使い勝手はいいと思います。
以上、ご参考になれば幸いです。