LoginSignup
3
8

More than 3 years have passed since last update.

Windows10のubuntu18.04LTS環境でDockerを使えるようにする(WSL2+ホームディレクトリ変更+SSH接続)

Last updated at Posted at 2020-01-08

環境

  • Windows10 Home
  • バージョン1903 (OSビルド 18362.295)

背景

  • クラウドサービスを使ってサーバー構築するときにローカルでテストしたい
  • サーバー構築するときにDockerを使うのでローカルでDockerを使えるようにしたい
  • Windows10 HomeでDockerを入れるのは非常に大変なのでWSL2を使う

今回やること

  1. WSL2(Windows Subsystem for Linux2)を使ってubuntu18.04LTS環境を構築
  2. windows環境からファイルを操作できるようにホームディレクトリを変更する
  3. Dockerを使えるようにする
  4. SSHで接続できるようにする
  5. suコマンドを使えるようにする

環境構築手順

1. WSL2(Windows Subsystem for Linux2)を使ってubuntu18.04LTS環境を構築

WSLでubuntu18.04LTS環境を構築

手順①「スタートボタン」を右クリック
手順②「アプリと機能」をクリック
手順③「プログラムと機能」をクリック
手順④「Windowsの機能の有効化または無効化」をクリック
手順⑤「Windows Subsystem for Linux」をクリック

図1.png

手順⑥「microsoft store」を起動

図3.png

手順⑦「ubuntu」を検索
手順⑧ 18.04LTSを選択してインストール
手順⑨ 初回起動で「ユーザ名」と「パスワード」を入力する

図4.png

OSビルドを18917以上にする

手順① 「設定 > 更新とセキュリティ > Windows Insider Program」で「開始する」を押す
手順② Insiderの設定でスローにする
手順③ 再起動をする
手順④ Windows Updateをする
手順⑤ 再起動をする
手順⑥ 「Ctrl+R」で「winver」と入力し、OSビルドが18917以上かどうか確認する

WSLをWSL2に変更する

手順① 管理者権限でPowerShellを起動して以下コマンドを実行する

> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Path          :
Online        : True
RestartNeeded : False

手順② 管理者権限で再起動する

手順③ バージョンの確認

> wsl -l -v

  NAME            STATE           VERSION
* Ubuntu-18.04    Running         1

手順④ バージョンの変更

> wsl --set-version Ubuntu-18.04 2

変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

手順⑤ バージョンの確認

> wsl -l -v

  NAME            STATE           VERSION
* Ubuntu-18.04    Running         2

2. windows環境からファイルを操作できるようにホームディレクトリを変更する

なぜ必要?

windows環境からubuntu環境にアクセスする方法はあるが、windows環境からubuntu環境配下で何か変更してしまうとubuntu環境が壊れてしまう。
ubuntu環境にはwindows環境の固定ドライブがマウントされている。
「C:」ドライブなら「/mnt/c」でubuntu環境からwindows環境へアクセスできる。
そこで、ubuntu環境での作業をwindows環境下で行うことでwindows環境から操作できるようにする

今回の例

  • windowsのDocumentsに「ubuntu」というディレクトリを作成し、そこを新ホームディレクトリとする
  • <username1> : windows のユーザ名
    • デスクトップまでのパスの例だと以下部分
    • C:\Users\<username1>\Desktop
  • <username2> : ubuntu のユーザ名(初回起動時に設定した名前)

手順

手順① ubuntuを起動して、デフォルトのホームディレクトリにあるファイル(設定ファイル)をwindows環境の新ホームディレクトリに移動する

$ cd
$ cp -p .* /mnt/c/Users/<username1>/Documents/ubuntu/

手順② 設定ファイルを開く

$ sudo vim /etc/passwd

手順③ 記載内容の変更

※変更前

<username2>:x:1000:1000:,,,:/home/<username2>:/bin/bash

※変更後

<username2>:x:1000:1000:,,,:/mnt/c/Users/<username1>/Documents/ubuntu:/bin/bash

手順④ ubuntuを再起動

3. Dockerを使えるようにする

手順① ubuntuを起動してDockerをインストール

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get install docker-ce
$ sudo usermod -aG docker $USER
$ sudo /etc/init.d/docker start

手順② docker-composeをインストール

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

※ubuntuを再起動する

手順③ windows起動時にdockerを自動起動するように設定する
以下ファイルを作成する。
※passwordはubunt初回起動時に設定したパスワード

startdocker.bat
@echo off
C:\Windows\System32\bash.exe -c "echo '<password>' | sudo -S /etc/init.d/docker start"

手順④ このファイルをwindowsのスタートアップフォルダに置く。

C:\Users\<username1>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

4. SSHで接続できるようにする

なぜ必要?

正直なくても問題ないが、リモートサーバーに接続しているターミナルエミュレーターと同様に操作できるようにするため

手順

手順① ubuntu環境でopenssh-serverを立ち上げる
2018/07/16時点では既にインストールされているopenssh-serverをそのまま使うとエラーになるので、一度アンインストールする

$ sudo apt-get remove --purge openssh-server
$ sudo apt-get update --fix-missing
$ sudo apt-get install openssh-server
$ sudo service ssh start

手順② windows起動時にsshを自動起動するように設定する
以下ファイルを作成する。
※passwordはubunt初回起動時に設定したパスワード

startssh.bat
@echo off
C:\Windows\System32\bash.exe -c "echo '<password>' | sudo -S /etc/init.d/ssh start"

手順③ このファイルをwindowsのスタートアップフォルダに置く。

C:\Users\<username1>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

5. suコマンドを使えるようにする

初期設定状態だとrootユーザに変更するためのパスワードが設定されていない。
初期設定で設定したユーザのパスワードでrootユーザに変更することもできるが、rootユーザのパスワードも設定しておく。

手順① ubuntuを起動して初期設定したユーザのパスワードでrootユーザに変更

$ sudo su -

手順② rootユーザのパスワード設定
※上記コマンドでrootユーザに変更した後で設定する

passwd

今後は su - で設定したパスワードを入力するとrootユーザにログインできる

各種ライブラリのインストール

$ su -
$ apt-get -y update && apt-get -y upgrade && apt-get install -y \
  build-essential make \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

参考

3
8
0

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
3
8