windows10 homeのwslにdockerをインストールする
5 October 2020 追記
誤字の修正
追記ここまで
1 June 2019追記
インストールをやり直したらうまくいかない操作があったので書き直した
追記ここまで
使いたいコマンドがDockerで配布されてたのでインストールしたい
Dockerとはなんぞや。。。
無償の「Docker for Windows」で手軽にLinuxコンテナを利用する (1/2):Windows管理者のためのDocker入門 - @IT
Windows Server 1709上でLinuxコンテナを動かす(lcow) - Qiita
残念ながら使用中のPCはwindows10 home。
Windows10 homeではhyper-Vが使えないが、
Docker ToolBox + VirtualBoxの組み合わせで
dockerを使えるようにしている人達がいる
windows 10 home で docker を導入するメモ - Qiita
Windows 10 Home のための、Docker Toolbox をインストールして WSL から使う方法 | ラボラジアン
Docker Toolboxのインストール:Windows編 - Qiita
WSLでDockerを使う - Qiita
ただしDocker ToolBoxはlegacy solutionなので
ある意味イレギュラーな使い方かも
そのうち使えなくなることも覚悟しておく
Legacy desktop solution. Docker Toolbox is for older Mac and Windows systems that do not meet the requirements of Docker Desktop for Mac and Docker Desktop for Windows. We recommend updating to the newer applications, if possible.
インストールの順序は
- Windows側にDocker Tool boxをインストールする
- WSL側にDockerをインストールする
- .profileを編集する
- 動作の確認
1. まずDocker Tool boxをインストールする
ダウンロードはここから。
v18.09.3が最新
Releases · docker/toolbox · GitHub
windowsはexeファイルでいいはず。。。
インストール先以外はデフォルトのままインストールした
Install Docker Toolbox on Windows | Docker Documentation
Step 2: Install Docker Toolbox
In this section, you install the Docker Toolbox software and several “helper” applications. The installation adds the following software to your machine:Docker Client for Windows
Docker Toolbox management tool and ISO
Oracle VM VirtualBox
Git MSYS-git UNIX tools
If you have a previous version of VirtualBox installed, do not reinstall it with the Docker Toolbox installer. When prompted, uncheck it.
Docker Quickstart Terminalのショートカットをダブルクリックすると
ターミナルが起動する。インストール作業が始まる。
時間が掛かるがクジラが表示されたあとに
コマンドプロンプトが表示される
## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com Start interactive shell hogehoge@fugahuga MINGW64 /d/Docker Toolbox $
ちなみにhogehogeはpcにログインしているユーザー名
fugafugaはpc名が表示されている
Docker Quickstart Terminalでバージョン確認のコマンドを実行
clientとserverの両方が表示されればまずはオッケー
$ docker version Client: Version: 18.09.3 API version: 1.39 Go version: go1.12 Git commit: 774a1f4eee Built: Mon Mar 4 10:36:44 2019 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.3 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 774a1f4 Built: Thu Feb 28 06:40:51 2019 OS/Arch: linux/amd64 Experimental: false
2. 次にwsl側からdockerのコマンドをインストールする
ここと同じ手順
WSL の docker client から、Docker for Windows の docker daemon を使う手順 | ラボラジアン
以下の順でコマンドを実行する
途中でgitからダウンロードするdocker-composeのバージョンはここに合わせた
Install Docker Compose | Docker Documentation
$ sudo apt update $ sudo apt install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu\ $(lsb_release -cs) \ stable" $ sudo apt update $ sudo apt install docker-ce $ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod a+rx /usr/local/bin/docker-compose $ docker-compose --version $ sudo curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose $ sudo chmod a+r /etc/bash_completion.d/docker-compose $ source /etc/bash_completion.d/docker-compose
3. 次に$HOME/.profileの編集する
こちらを参考にした
Windows 10 Home のための、Docker Toolbox をインストールして WSL から使う方法 | ラボラジアン
まずはDocker Toolboxで
docker-machine.exe confing
次に$HOME/.profileに仮想マシンのIPアドレスとポート番号、及びをcertsのpathを追記した
export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH=/mnt/c/Users/hogehoge/.docker/machine/machines/default export DOCKER_TLS_VERIFY=1
hogehogeは自分のユーザー名に書き換える
/mnt/c/Users/hogehoge/.docker/machine/certsにも秘密鍵?のファイルがあるがこっちではないっぽい
IPアドレスはDocker Quickstart Terminalでdocker-machine configを
実行して表示されているIPアドレスとポート番号を記入した
ググって探したサイトによってはポート番号が2376の場合と
2375の場合とがあって何なのかわからなかったが、
Docker Quickstart Terminalから取得できる
IPアドレスとポート番号が上記の値で、
こちらの環境ではこれで動くようになった
26 September 2020 追記
DOCKER_HOSTの確認は
$ docker-machine.exe env
で行う
実行結果は以下の通り
You can further specify your shell with either 'cmd' or 'powershell' with the --shell flag. SET DOCKER_TLS_VERIFY=1 SET DOCKER_HOST=tcp://192.168.99.100:2376 SET DOCKER_CERT_PATH=C:\Users\hogehogehugahuga\.docker\machine\machines\default SEZ DOCKER_MACHINE_NAME=default SET COMPOSE_CONVERT_WINDOWS_PATHS=true REM Run this command to configure your shell: REM @FOR /f "tokens=*" %i IN ('docker-machine.exe env') DO @%i
DOCKER_HOSTの値を$HOME/.profileに記入する
追記ここまで
追記したら.profileを読み込ませるためにターミナルを再起動する
再起動せずに
$ source .profile
でも動いた
インストールはここまで
4. 最後に動作の確認をする
再起動後wslのターミナルで
$ docker-machine.exe active
を実行すると動いている仮想マシンを確認できる
docker-machine.exeはwslのコマンドではないので拡張子が必要
wslのターミナルでバージョン確認のコマンドを実行する
$ docker version Client: Version: 18.09.4 API version: 1.39 Go version: go1.10.8 Git commit: d14af54266 Built: Wed Mar 27 18:35:44 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.3 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 774a1f4 Built: Thu Feb 28 06:40:51 2019 OS/Arch: linux/amd64 Experimental: false
Docker Quickstart Terminalのときと同じかな
次にコンテナが動作するか確認する
$ docker run hello-world
実行後次のように表示されたらオッケーらしい
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
仮想マシンの開始・終了もwsl側からできる
仮想マシンの終了は
$ docker-machine.exe stop
起動は次のようにする
$ docker-machine.exe start
動いてるコンテナや仮想マシンがないか確認する
終了についてはこちらを参考にした
windows 10 home で docker を導入するメモ - Qiita
23 April 2020 追記
Oracle VirtualBoxVMのアップデートをしたらdocker runでコンテナを起動できなくなった
docker-machine.exe configで確認すると以下のメッセージ
Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376": x509: certificate is valid for 192.168.99.100, not 192.168.99.101
このサイトを参考に修正できた
qiita.com
追記ここまで