ludwig125のブログ

頑張りすぎずに頑張る父

Docker for Windowsのインストールとトラブル対応

参考

WSL(Bash on Windows)でDockerを使用する - Qiita

Docker for Windows を始めよう — Docker-docs-ja 19.03 ドキュメント

Windows に Docker Desktop をインストール — Docker-docs-ja 19.03 ドキュメント

この辺を参考にDocker for WindowsをインストールしたけどうまくHyper-Vが立ち上がってくれなかったので対応したこと

前提

PCはWindows10のProである必要がある

インストーラのダウンロードとインストール

https://hub.docker.com/editions/community/docker-ce-desktop-windows/

インストーラをクリックしてインストールする

アプリを起動

Docker Desktopアプリを起動

デスクトップ上にショートカットのアイコンがあればそれをクリック またはWindowsキーで検索する

自分の場合はここで Cannnot enable Hyper-V service と出てしまった(対応は後述)

image

上のポップアップを消してしまうとDockerアプリも閉じてしまうみたいなのでここではわきにどけてそのまま続けた

設定画面

How open docker settings on windows? - Super User

アプリの設定は上のリンク先にも書いてある通り、起動中はWindowsの右下の「上向きの三角っぽい矢印の中」に隠れている

image

これを押して「Settings」を押す

image

この「Expose daemon on tcp://localhost:2375 without TLS」チェックを入れて「Apply&Restart」する

WSL上でDockerインストール

Install Docker Engine on Ubuntu | Docker Documentation

# 事前パッケージインストール
$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# DockerのGPG鍵を追加,確認
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88

# Docker Stableレポジトリを追加
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# Dockerインストール
 $ sudo apt-get update
 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

WSL上のDocker設定

自分の場合はzshを使っているので、.zshrcを編集する。bashの人は.bashrcにする

echo "export DOCKER_HOST='tcp://0.0.0.0:2375'" >> ~/.zshrc
source ~/.zshrc

確認

docker version をターミナルで実行すると、おかしい

Cannot connect to the Docker daemon at tcp://0.0.0.0:2375. Is the docker daemon running? というメッセージが出た

Serverは表示されない

$docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:45:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

参考

Hyper-Vが立ち上がってくれない問題対応

Windows 10 での Hyper-V の有効化 | Microsoft Docs

を参考にやってみたがうまくいかない

自分の場合は事前に「Hyper-V」がチェックが入っていた image

調べた結果

Cannot enable hyper-v service - Docker Desktop for Windows - Docker Forums

got to ‘Apps and Features’.
Select Programs and Features on the right under related settings.
Select Turn Windows Features on or off.
Unselect Hyper-V and click OK. (So I disable it)
Restart computer

After restart I go to:
‘Apps and Features’.
Select Programs and Features on the right under related settings.
Select Turn Windows Features on or off.
select Hyper-V and click OK. (So I enable it)
Computer restart

という記述を見つけて、いったんチェックを外して再起動、もう一度チェックを入れて再起動したら、今度はHyper-Vが立ち上がったらしい(DockerDesktopアプリを起動してもエラーが出なかった!)

再度確認

$docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:45:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.12
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.10
  Git commit:       48a66213fe
  Built:            Mon Jun 22 15:49:27 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

ようやく表示された。 ふー