WSL1でDocker使いたい
理由?
WSLでDocker for windowsを使うッ!!! - Qiita
この記事に触発されたから。俺もやってみようと思った。
あと、うまくいったらテスト環境でLinuxベースのやつさくさく切り替えられそうだしね。
Windows側の操作
WindowsにDockerインストール
Dockerの公式サイトから普通にダウンロードしてインストール
WSLからWindowsのDockerを呼び出す設定
- タスクバーのdockerアイコン右クリックして、Settingクリック
- Generalの見出しの「Expose deamon on~~」のチェックを入れてOK。
これで、tcp://localhost:2375/でDockerが待ち受けしてくれるようになる。
画面は閉じないで、次の手順へ!!
DockerがCドライブをマウントする設定
- 同じ画面の
Resources
>FileSharing
をクリック - 画面右にドライブレターが表示されるので、
C
にへっくいれてOK
画面はもう少しそのまま。閉じないで!!
DockerのProxyとDNS設定
DockerはWindows標準とは別に独自のProxyとDNSの設定を持っている。
なので、クローズドな環境の場合はこちらも設定する。
- 同じ画面の
Proxies
をクリックすると、右側に設定画面が表示される。環境にあわせて変更。 - 同様に
Network
をクリックすると右側にDNSの切り替えスイッチとアドレス設定がでてくる。 - いっそ、ONにしてIPを「8.8.8.8」にした方が軽快に使える場合もあるが、まぁ、環境とご相談で。
WSL側の操作
dockerのインストール
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install docker
$ sudo apt install docker-compose
Cドライブのマウント場所の変更
標準だと/mnt/c
になって使いにくいので変更する。
[automount]
root = "/"
dockerの動作確認
いったん、DockerもWSLも一度再起動しとく(なんか不具合よく起きたのでお文じない)
再起動したのを確認したら、動作確認。
$ docker version
Client:
Version: 18.09.7
~~ 略 ~~
Server: Docker Engine - Community
Engine:
Version: 19.03.5
~~ 略 ~~
エンジンバージョンがWindowsと一致している。
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
~~ 略 ~~
For more examples and ideas, visit:
https://docs.docker.com/get-started/
ここで躓く場合は、下記のネットワークの設定を確認しておく。
- WSLのPROXY設定がされていない
- WSLのNO_PROXYが設定されていない
Jenkinsを起動する
Jenkinsの公式ドキュメント
に記載されいている下記のコマンドそのままではWSLからは起動できない。
$ docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
下記の通りに変更するとWSL上でも動作する。
$ docker run -p 8080:8080 -p 50000:50000 -v /c/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
WSL上のディレクトリにはDockerのファイルシステムをマウントできないのが原因らしい。
よって、Windows上のドライブを指定する必要がある。(上記の例ではC:\jenkins_home
)
Jenkinsの起動確認
ブラウザからhttp://localhost:8080
で初期画面が表示される。
パスワードはC:\jenkins_home\secrets\initialAdminPassword
に保存されているのでコピペ
WSLからのDockerの動作確認としてはこれで終了