紹介記事:[WSL上でDocker Engineが動くようになっていたっぽいという話]
(https://qiita.com/yanoshi/items/dcecbf117d9cbd14af87)
WSLでLinuxのdockerが動くようになったようです(Docker for Windowsも不要!)
後は、
管理者権限でWSLを動かしてdockerのサービスを(手動)起動する
手間を減らしてみます。
環境
・Windows10 april 2018 update 適用 (Windows10 (Pro?) 1803)
・Ubuntu 16.04 (Microsoft Store版)
Windows10 april 2018 update から、WSLのdaemonが動くようになりました。
あと、Ubuntuは16.04をインストールして下さい。以下手順でdockerを入れる場合、18.04では動かないようです。
dockerのインストール
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install docker.io
dockerの自動起動設定
シェルスクリプト作成
以下シェルスクリプトを作成して任意のパスに置いておきます。
#!/bin/sh
sudo cgroupfs-mount
sudo usermod -aG docker $USER
sudo service docker start
例) ~/dockerstart.sh
(2018/08/14 追記)
別PCで、dockerが起動しない現象が有りましたが、
BIOS の Intel Virtualization Technology を OFF にしてUbuntuを入れ直したら起動するようになりました。
同様に動作しないという方は試してみて下さい。
タスクスケジューラ設定
Windowsのスタートメニューから、「Windows 管理ツール」-「タスクスケジューラ」を開きます。
右側の「タスクの作成」を選択して以下を設定します。
全般
「名前」:Docker (任意で)
「最上位の特権で実行する」にチェックを入れる(必須!)
トリガー
「新規」で作成し、
「タスクの開始」:ログオン時を選択
「設定」:特定のユーザを選択
操作
「新規」で作成し、
「操作」:プログラムの開始を選択
「プログラム/スクリプト」:wsl.exe
「引数の追加」:~/dockerstart.sh
パスはWSL(Linux)形式で指定します。(C:ドライブ以下は、/mnt/c/)
条件
「コンピューターをAC電源で使用している場合のみタスクを開始する」チェックを外す
設定
「タスクが失敗した場合の再起動の間隔」:1分間
以上が完了したら、PCを再起動させます。
WindowsにログインするとWSLのコンソールが起動します。
sudoのパスワードが求められるので入力します。
これを省略したい場合は以下記事を参考にして下さい。
[sudo のパスワードを入力なしで使うには]
(https://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7)
タスクマネージャーのバックグラウンドプロセスに dockerd が有れば成功です。
docker を使う
管理者権限不要です。WSL又は、WSL対応のコンソールを起動してdockerコマンドを使用します。
$ docker run hello-world
参考資料
[WSL上でDocker Engineが動くようになっていたっぽいという話]
(https://qiita.com/yanoshi/items/dcecbf117d9cbd14af87)
[Windows10 - 管理者権限が必要なアプリを自動起動(スタートアップ)]
(https://pc-karuma.net/windows-10-task-schedule-without-uac-prompt/)
[WSLを使うなら必須!「wsltty」で快適シェル環境を整える!]
(https://linuxfan.info/wsltty)