Bash on Ubuntu on WindowsでUbuntuのchrootコンテナを作成する方法
概要
Creators Updateによって、Bash on Ubuntu on Windows (BoW) へ chroot
を使ってUbuntuのコンテナを作成できるようになりました。ここでは、その手順を説明します。
※この記事の内容は、過去のエントリ(Bash on Ubuntu on Windowsのchrootを試してみた - くんすとの備忘録)の一部を切り出し一部修正を加えたものです
セットアップ手順
手順は1~5まであります。
1. 必要なパッケージのインストール
# apt install debootstrap
2. debootstrapを使ったUbuntu環境のダウンロード
違いがわかりやすいように、XenialではなくVividを入れます。
# debootstrap vivid /srv/chroot/vivid http://ftp.riken.go.jp/Linux/ubuntu/
3. resolv.confのコピー
# cp -L /etc/resolv.conf /srv/chroot/vivid/etc
4. デバイスのマウント
bashの全ての窓を閉じると設定し直しになるので注意
# cd /srv/chroot # mount -t proc none vivid/proc # mount -t sysfs none vivid/sys # mount -o bind /dev vivid/dev
5. ログイン
# chroot /srv/chroot/vivid /bin/bash
確認・検証
uname
コンテナの外側
# uname -a # cat /etc/lsb-release
コンテナの内側
# uname -a # cat /etc/lsb-release
ということで、Ubuntu(Vivid)のコンテナ環境が作成されたことがわかります。
アプリケーションを入れてみる
リポジトリの追加
# sed -i.BK 's/$/ restricted universe multiverse/' /etc/apt/sources.list # apt update
Gitのインストール
# apt install git
軽く動作検証
git clone https://github.com/vuejs/vue.git
OK
Rubyのインストール
# apt install ruby
軽く動作検証
# ruby -e 'open("/etc/lsb-release").readlines.collect{|l| puts l.downcase}'
OK
Node.jsのインストール
# apt install nodejs
軽く動作検証
# nodejs -e 'var fs = require("fs"); fs.readFile("/etc/lsb-release", "utf8", function(err, text) { console.log(text.toLowerCase()) })'