コンテナ | Linux
コンテナの技術
※ プロセスを分離して proc ディレクトリを mount するとホストの情報を取得できないのでホストとの仮想イーサネット作成で失敗する。
- namespace
- root ディレクトリ変更
流れ
- $HOME/sample ディレクトリを作成
- alpine ファイルシステムを sample に配置
- namespace を作成して root ディレクトリ変更
- proc ディレクトリ設定
- ネットワーク設定
前提
- ホストは Amazon EC2 Ubuntu 22.04 を使用
- ホストのプロンプトを host$ 、コンテナのプロンプトを container$ と表記
sample ディレクトリを作成
host$ mkdir ${HOME}/sample
alpine ファイルシステムを sample に配置
$ cd ${HOME}/sample
$ curl -o alpine.tar.gz https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/alpine-minirootfs-3.19.0_rc3-x86_64.tar.gz
$ tar xvf alpine.tar.gz
namespace を作成して root ディレクトリを変更
$ sudo unshare --pid --fork --mount --net chroot sample sh
※ Alpine は bash がインストールされていないので sh を使用します。
proc ディレックりをマウント
$ mount -t proc proc proc