ドッカーが永続ストレージで動作するのか、永続ストレージで動作するのかを制御したいと思います。Docker:オーバーレイされたバッキングファイルシステムを使用できますか?
私はSDカード(ラズベリーパイ)にファイルシステムを持っているので、それは長く続く必要があります。私は主に、tmpfs(その上のコンテナを実行)でオーバーレイされた読み取り専用ファイルシステム(ext4)で操作したいが、更新が利用可能であることを検出すると、overlayfsをアンマウントし、ファイルシステムを読み書きし、すべてをtmpfsオーバーレイされた読み取り専用ファイルシステムに戻します。
# mv /var/lib/docker /var/lib/docker~
# mkdir -p /var/lib/docker /tmp/docker /tmp/work
# mount -t overlay -o lowerdir=/var/lib/docker~,upperdir=/tmp/docker,workdir=/tmp/work overlay /var/lib/docker
# docker daemon --storage-driver devicemapper
私は2つのストレージドライバ試み:overlay2と devicemapper(ループ)。前者は、ファイルシステムの基礎となるオーバーレイ上での作業を拒否しました(これは、サポートされていないというドキュメントでも言及されています)。後者はすべてのメモリを消費し、その後DockerはOSによって殺されます。この動作は、Raspberry Piと私のPCで同じです。
動作する唯一のストレージはvfsですが、私が読んだものではストレージ(コピーオンライトなし)は非常に非効率的なので、私にとっては役に立たないものです。
私はaufsストレージドライバとoverlayfsバッキングファイルシステムでそれをやろうとしています(Dockerのドキュメントでは、それが無効であるとは言いません)。私はそれがうまくいくことを願っていますが、いくつかの短所があります:aufsはメインラインのLinuxカーネルではサポートされていません。
2つのファイルシステムを切り替える他の方法はありますか?または、SDカードの保存を完全に異なる方法(たとえば、メモリ内のコンテナを実行中)で行うことはできますか?