LoginSignup
6
11

More than 3 years have passed since last update.

WindowsでDockerまとめ

Last updated at Posted at 2019-12-25

これは何か

WindowsをDocker化にするにあたっての作業ログです。

HomeなのかProなのか?Check

cmd
> 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のバージョンを確認

powershell
> docker -v
Docker version 19.03.5, build 633a0ea

トラブルシューティング 🐾

sshが入っていない

  • Windowsでoptionで検索

    • オプション機能を追加する
    • 機能の追加
    • OpenSSHサーバを追加
  • 管理者権限でPowerShell起動
    下記を実行

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を起動して、以下を実行し環境変数を削除します。

powershell
[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をインストールします。

powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

docker-machineをchoco upgradeします。

powershell
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

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11