15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WSL (Ubuntu 18. 04) にDockerを入れる

Last updated at Posted at 2019-09-02

tl;dr

  • Windows Subsystem for Linux (以後 WSL) にDockerを入れようとしたらめちゃめちゃ詰まった
  • 本来WSL上でDockerを使用するなら Ubuntu 16.04 を使用するべきらしい
  • WSLが最新のDockerには対応していない模様。
  • インストールが完了しても Is the docker daemon running? と永遠に怒られた

環境

  • Windows 10 Pro
  • Windows Subsystem for Linux (Ubuntu 18.04)

インストール手順

まずはパッケージ関連を更新しておく

$ sudo apt-get update

HTTPS経由でrepositoryをやりとり出来るようにするためのパッケージをインストール

$ sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Dockerの公式GPG keyを追加する

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
    | sudo apt-key add -

repository( stable ) を追加する

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   bionic \
   stable"

再度 apt パッケージのアップデート

$ sudo apt-get update

docker-ce(17.09.0)のdebファイルをダウンロードします

$ wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb

Dockerのインストール

$ sudo dpkg -i docker-ce_17.09.0~ce-0~ubuntu_amd64.deb

Userの設定。ログインユーザをdocker group に所属させることにより、dockerコマンドを sudo 無しで実行を出来るように

$ sudo cgroupfs-mount
$ sudo usermod -aG docker $USER

Dockerを立ち上げる

ターミナルソフトを管理者権限で動作させないと正常に動きません
↑で大いに時間を消費しました。

当方は管理者権限で動作させていなかった為、 start しても下記出力に悩まされました。
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

systemctl は WSLでは動作しないため、serviceコマンドで開始します。

$ sudo service docker start

正常に開始されたことを確認します

$ sudo service docker status
* Docker is running

hello-world コンテナを建ててみる

$ 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/

正常に動きました。

おまけ

DockerのProxy周りの環境変数は下記フォルダに書くとよい

/etc/default/docker
export http_proxy='http://your.proxy.com:yourPort'
export https_proxy='${http_proxy}'

まとめ

  • WSLはDockerの最新版に対応してないのでバージョン指定して導入する
  • 管理者でターミナルソフトを立ち上げないと正常に動かない
参考

15
14
1

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
15
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?