トップページ -> コンピュータ -> Ubuntu -> Ubuntu 上で,Ubuntu の隔離された開発環境を作る.Docker ベースイメージを作る(chroot, debootstrap, docker を使用)
[サイトマップへ]  

Ubuntu 上で,Ubuntu の隔離された開発環境を作る.Docker ベースイメージを作る(chroot, debootstrap, docker を使用)

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

ユースケース: Ubuntu の隔離された開発環境を作り,自由に使いたい(仮想マシンとはさよならしたい)

chroot を使って隔離する.debootstrap を使って,Ubuntu の環境をすばやく簡単に作る.


前準備

Ubuntu のシステム更新

端末で,次のコマンドを実行.

sudo apt update
sudo apt -yV upgrade
sudo shutdown -r now

Ubuntu の隔離された開発環境の作成

  1. debootstrap, schroot のインストール
    sudo apt -yV install debootstrap schroot
    

  2. Ubuntu の隔離された開発環境の作成

    ここでの設定

    終了まで,しばらく待つ

    mkdir ${HOME}/ubuntu1804
    sudo debootstrap --arch amd64 --variant buildd --include=ca-certificates,apt,wget,sudo bionic ${HOME}/ubuntu1804 http://jp.archive.ubuntu.com/ubuntu
    

  3. 終了の確認

  4. /etc/apt/sources.list のコピー
    sudo cp /etc/apt/sources.list /home/aiubuntu/etc/apt/sources.list
    exit
    

  5. /home/aiubuntu/etc/fstab の設定

    これは,隔離された開発環境の中で,procfs を使うためのもの

    /home/aiubuntu/etc/fstab に「proc /proc proc defaults 0 0」を書き加える.

  6. Ubuntu の隔離された開発環境の確認
    1. Ubuntu の隔離された開発環境を有効にし,「uname -a」で確認
      sudo chroot ${HOME}/ubuntu1804
      uname -a
      

    2. nanoエディタをインストールしてみる
      apt install nano
      

    3. コンパイラの確認のため、 エディタを使って次のプログラムファイルを作成。「/tmp/hello.c」のようなファイル名で保存.
      #include <stdio.h>
      int main() {
          printf("Hello,World!\n");
          printf("sizeof(size_t)=%d\n", sizeof(size_t));
          return 0;
      }
      

    4. コンパイルして実行
      cd /tmp
      gcc -o a.out hello.c
      ./a.out
      

    5. exit で終了
      exit
      


Ubuntu の Docker ベースイメージの作成

chroot ではなく,Docker で扱いたい場合. 前準備として,Docker のインストールを終わっていること.Docker のインストールは,「別のページ」で説明している.

  1. Docker ベースイメージの作成
    cd ${HOME}/ubuntu1804
    sudo tar -cpzf ../ubuntu1804.tar.gz .
    docker import ../ubuntu1804.tar.gz <イメージ名>
    

  2. 確認のため,コンテナを作成し,コンテナ上で /bin/bash を実行

    エラーメッセージが出なければ OK

    docker run -it <イメージ名> /bin/bash
    exit
    


schroot の設定

schroot を設定し,一般ユーザでも chroot が実行できるようにする

  1. /etc/schroot/chroot.d/ubuntu1804 を次のように設定

    「directory=/home/kaneko/ubuntu1804」のところは,実際に作成したディレクトリに書き換えること

    kaneko」のところは,使用させたいユーザのユーザ名に書き換えること(複数のときは,カンマで区切る)

    [ubuntu1804]
    description=Ubuntu 18.04 (Bionic)
    type=directory
    directory=/home/kaneko/ubuntu1804
    root-users=kaneko
    users=kaneko
    

  2. schroot の動作確認
    schroot -c ubuntu1804 -p bash
    uname -a
    exit
    

  3. schroot の動作確認.今度は管理者権限を得る
    tschroot -c ubuntu1804 -p bash -u root
    uname -a
    exit