Help us understand the problem. What is going on with this article?

WSLのdocker daemonを自動起動させる

More than 1 year has passed since last update.

紹介記事:WSL上でDocker Engineが動くようになっていたっぽいという話

WSLでLinuxのdockerが動くようになったようです(Docker for Windowsも不要!)
image.png

後は、
管理者権限で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 管理ツール」-「タスクスケジューラ」を開きます。
image.png

右側の「タスクの作成」を選択して以下を設定します。

全般
「名前」:Docker (任意で)
「最上位の特権で実行する」にチェックを入れる(必須!)

トリガー
「新規」で作成し、
「タスクの開始」:ログオン時を選択
「設定」:特定のユーザを選択

操作
「新規」で作成し、
「操作」:プログラムの開始を選択
「プログラム/スクリプト」:wsl.exe
「引数の追加」:~/dockerstart.sh
 パスはWSL(Linux)形式で指定します。(C:ドライブ以下は、/mnt/c/)

条件
「コンピューターをAC電源で使用している場合のみタスクを開始する」チェックを外す

設定
「タスクが失敗した場合の再起動の間隔」:1分間

以上が完了したら、PCを再起動させます。

WindowsにログインするとWSLのコンソールが起動します。
image.png

sudoのパスワードが求められるので入力します。
これを省略したい場合は以下記事を参考にして下さい。
sudo のパスワードを入力なしで使うには

タスクマネージャーのバックグラウンドプロセスに dockerd が有れば成功です。
image.png

docker を使う

管理者権限不要です。WSL又は、WSL対応のコンソールを起動してdockerコマンドを使用します。

$ docker run hello-world

image.png

参考資料

WSL上でDocker Engineが動くようになっていたっぽいという話

Windows10 - 管理者権限が必要なアプリを自動起動(スタートアップ)

WSLを使うなら必須!「wsltty」で快適シェル環境を整える!

forest1
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした