くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

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

f:id:kunst1080:20170525233527p:plain

コンテナの内側

# uname -a
# cat /etc/lsb-release

f:id:kunst1080:20170525233543p:plain

ということで、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

f:id:kunst1080:20170525233613p:plain

OK

Rubyのインストール

# apt install ruby

軽く動作検証

# ruby -e 'open("/etc/lsb-release").readlines.collect{|l| puts l.downcase}'

f:id:kunst1080:20170525233626p:plain

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())
})'

f:id:kunst1080:20170525233637p:plain

参考URL