ファイルシステムはストレージにあるデータをどのように保存しどのように取得するかを決める仕組みのことである。ファイルシステムがなければ、データはただの塊であり、名前をつけたり、ディスク上のどこからどこまでが1つのグループであるかを判断することができなくなる。
Linuxのファイルシステム
Linuxシステムが立ち上がるためには、以下の2つのファイルシステムが必要である。
- boot file system (bootfs)
- root file system (rootfs)
ブートファイルシステム
- ブートローダーとカーネルが入っている
- ユーザーは変更できない
- ブートが終わるとアンマウントされる
ルートファイルシステム
- 通常のLinux-likeなOSのディレクトリ構造を構築するもの
- /dev, /proc, /bin, /etc, /lib, /usr, /tmp などのディレクトリ
- バイナリやライブラリなどのファイル
このルートファイルシステムの中身と構造の違いが、あるソフトウェアパッケージが特定のLinuxのディストリビューションに依存することの原因となっている。そのためDockerは複数のLinuxディストリビューションのrootfsを同時に立ち上げてこの問題を解決している。