ユースケース: Ubuntu の隔離された環境(chroot 環境)を作り,自由に使いたい(仮想マシンとはさよならしたい).
chroot を使って隔離する.debootstrap を使って,Ubuntu の環境をすばやく簡単に作る.
Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行.
Ubuntu のインストールは別ページ »で説明
sudo apt -y update sudo apt -yV upgrade sudo /sbin/shutdown -r now
sudo apt -y update sudo apt -y install debootstrap schroot
ここでの設定
終了まで,しばらく待つ
sudo rm -rf /home/ubuntu1804 sudo mkdir /home/ubuntu1804 sudo debootstrap --arch amd64 --variant buildd --include=ca-certificates,apt,wget,sudo bionic /home/ubuntu1804 http://jp.archive.ubuntu.com/ubuntu
sudo chroot /home/ubuntu1804 bash uname -a exit
sudo cp /etc/apt/sources.list /home/ubuntu1804/etc/apt/sources.list
これは,隔離された環境(chroot 環境)の中で,procfs を使うためのもの
/home/ubuntu1804/etc/fstab に「proc /proc proc defaults 0 0」を書き加える.
次の操作を行い,プロセス情報が表示されれば OK
sudo chroot /home/ubuntu1804 bash sudo mount /proc ps exit
※ このとき「ps -augx」を実行すると,すべてのプロセス情報が表示される.
ここでは,nano のインストール, C プログラムの編集とビルドと実行を行ってみる.
sudo chroot /home/ubuntu1804 uname -a
apt install nano
#include<stdio.h> int main() { printf("Hello,World!\n"); printf("sizeof(size_t)=%ld\n", sizeof(size_t)); return 0; }
cd /tmp gcc -o a.out hello.c ./a.out
exit
※ 前準備として,Docker のインストールを終わっていること.Docker のインストールは,「別のページ」で説明している.
cd /home/ubuntu1804 sudo chroot /home/ubuntu1804 bash sudo umount /proc exit sudo tar -cpzf ../ubuntu1804.tar.gz . docker import ../ubuntu1804.tar.gz ubuntu1804:base
「ubuntu1804:base」のところは,「イメージ名」を指定する.
エラーメッセージが出なければ OK
docker run -it ubuntu1804:base /bin/bash exit