これは何か
WindowsをDocker化にするにあたっての作業ログです。
HomeなのかProなのか?Check
> systeminfo
「OS 名: 」以降を確認します。
Windows Homeの場合
Hyper-V(仮想化システム)がサポートされていないため
Docker Toolboxを使用します。
Docker Toolboxに内包されているソフトウェア
- Docker Client for Windows
-
docker-machine
コマンドを実行するためのDocker Machine -
docker
コマンドを実行するためのDockerエンジン -
docker-compose
コマンドを実行するためのDocker Compose - Docker Toolbox management tool & ISO
- Oracle VM VirtualBox
- Git MSYS-git UNIX tools
Docker Toolboxのインストール
下記リポジトリから.exeファイルをインストールします。
Releases · docker/toolbox
Install VirtualBox with NDIS5 driver[default NDIS6]: デフォルトではOFFですが、ONにしてNDIS5 driverを使用します。
Looking for vboxmanage.exe
とエラーメッセージ
下記手順を踏むことでDockerToolboxを利用できました。
現在issueでDocker Toolboxインストーラーのバグが報告されていて、修正のPRが出されていました。バージョンアップに期待です。
- VirtualBox,git,doker toolboxをアンインストール後、再起動
- VirtualBoxを管理者としてインストール実行後、再起動
- gitの最新版を管理者としてインストール実行後、再起動
- DockerToolboxを管理者として実行、再起動
- ↑VirtualBox,gitを除外してインストール
Windows Proの場合
Hyper-V(仮想化システム)がサポートされているため
Docker for Windowsを使用します。
Hyper-Vの有効化
コントロールパネルの[プログラム]-[Windowsの機能の有効化または無効化]から「Hyper-V」にチェックを付けます。
※有効化するにはOSの再起動が必要です。
Docker for Windowsのインストール
以下のサイトから.exeファイルをインストール
https://docs.docker.com/docker-for-windows/install/
安定板のStable channelを選びます。
「Add shortcut to desktop」にチェックを付けて「OK」をクリックします。
インストール終了後、ダイアログの指示通りLog outして
「OK」を選択することでOSの再起動が行われます。
Dockerのバージョンを確認
> docker -v
Docker version 19.03.5, build 633a0ea
トラブルシューティング 🐾
sshが入っていない
-
Windowsでoptionで検索
- オプション機能を追加する
- 機能の追加
- OpenSSHサーバを追加
-
管理者権限でPowerShell起動
下記を実行
netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=22
以前のToolboxで作った環境が残っていて環境汚染されていた
could not read CA certificate "C:\Users\\.docker\machine\machines\default\ca.pem": open
というerorreが出る。
Toolbox絡みの環境変数を全部消します。
PoweShellを起動して、以下を実行し環境変数を削除します。
[Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User")
[Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User")
このあとChocolateyを使いましたが、正直使わないでdocker-machineをupgradeできるならそっちのほうが良いかもと思いました。
Chocolatey: Windows版のhomebrew
Chocolatey内にあるものが最新版じゃない場合もあり、ものによってはアンインストールできなくて結局GUI手動でやることになります。
Windowsのパッケージマネージャーにおいてchocolatey以外の選択肢があまりない現状もあるので、きちんとサポートされていて自動アップデート機能がしっかりしている場合においては、サードパーティのパッケージマネージャーで入れる旨味がないかなぁと感じました。
Windowsのパッケージマネージャーの一つであるChocolateyをインストールします。
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
docker-machineをchoco upgradeします。
choco upgrade docker-machine
Dockerの設定でCドライブが共有されていなかった
Drive sharing failed for an unknown reason
というerrorが出る。
- タスクバーからDockerのSettings
- Shared Drivesにて「C」にチェックを入れることで解決します。
参考資料
Install Docker Desktop on Windows | Docker Documentation
https://docs.docker.com/docker-for-windows/install/
docker/toolbox: The Docker Toolbox
https://github.com/docker/toolbox
VirtualBox - Docker Quickstart Terminalでエラー|teratail
https://teratail.com/questions/101943
Docker for Windowsをインストール
https://ops.jig-saw.com/techblog/docker-for-windows-install/
Windows10でsshする - Qiita
https://qiita.com/TukamotoRyuzo/items/7bd4ff6810421bdc9924
Docker for Windowsで"could not read CA certificate"エラーが発生した時の対応方法 - nuits.jp blog
https://www.nuits.jp/entry/docker-could-not-read-ca-certificate
WindowsのDockerで「Drive sharing failed for an unknown reason」エラーが出た - kdnakt blog
http://kdnakt.hatenablog.com/entry/2019/09/12/080000