LoginSignup
397

More than 5 years have passed since last update.

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

Posted at

経緯


太古の昔より人々はWSLでDockerを動かそうとしてきた。
しかしながら、様々な理由からDocker for WindowsやVirtualBoxを頼らざるを得ない状況が続いていた…

みたいな認識。
実際ググるとそういうアプローチの記事がよく引っかかる。
WSL(Bash on Windows)でDockerを使用する - Qiita
WSLでDockerを使う - Qiita

Docker Engineが動かない理由はcgroupだったりSocketだったり様々な要因が絡んでいるのだろうと思っていたし、いつかWSLのアップデートによって解消される問題なのだろうと想像されていた。しかしなかなか解消されなかった。
そんな私もWindows 10の大型アップデートの度に期待をし、失望するというルーチンを繰り返してきた。

しかし、先日こんなツイートを見かけた。


まじかよ
そんなメモ。

ネタ元

詳しく流れを知りたい人は、下記redditを参照。
ぶっちゃけ「WSLを管理者権限で動作させる」ってのと「Microsoft Store版のUbuntuを使う」って所を抑えておけば、サクッと動かせると思う。本メモはこれの抜粋。
https://www.reddit.com/r/bashonubuntuonwindows/comments/8cvr27/docker_is_running_natively_on_wsl/

検証環境

  • Windows 10 Pro(1803)
  • Ubuntu 16.04 in WSL(ストア版)(後述するけど非ストア版ではなぜか動かなかった)

下準備

Microsoft StoreからUbuntuを入れる

そもそもWSLを動かせない人はその準備を

管理者権限で動いているWSLからDockerをインストール

管理者権限(ココ重要)で動かしているWSLからDockerをインストール。

sudo apt update
sudo apt upgrade
sudo apt install docker.io
sudo cgroupfs-mount
sudo usermod -aG docker $USER
sudo service docker start

hello-worldしてみる

sudo docker run hello-world

image.png

すごい!!!ほんとに動いた!!!

ということで…

ホントにDocker EngineがWSLで動きました!

踏みそうな所

何故かStoreから入れたUbuntuじゃないと動かなかった。
( lxrun /install で入れたいわゆる Legacy ってやつでは動かない )

「動かないなー」って時は、どのディストリビューションが標準設定になっているのかを調べてみると良さそう。
WSLのディストリビューションの切り替えに関するメモ - Qiita

所感

最高かよ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
397