我想要控制docker是運行在永久性存儲上還是運行在永久性存儲上,並且覆蓋一個易失性存儲。Docker:是否可以使用覆蓋支持文件系統?
這是因爲我在SD卡(Raspberry Pi)上有文件系統,它需要持續很長時間。我主要想操作一個覆蓋有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
我嘗試了兩種存儲驅動程序:overlay2和devicemapper(循環)。前者拒絕使用overlayfs底層文件系統(在文檔中也提到它不被支持),後者消耗我所有的內存,然後Docker被操作系統殺死。樹莓派和我的電腦的行爲是一樣的。
應該工作的唯一存儲是vfs,但從我所讀到的,它存儲非常低效(沒有寫時拷貝),所以它對我來說是沒有用的。
現在我試着用aufs存儲驅動程序和overlayfs支持文件系統(Docker文檔沒有聲明它被禁用)。我希望它能夠工作,但它有一些缺點:主線Linux內核不支持aufs。
是否有其他方式在兩個文件系統之間切換?或者可以通過一些完全不同的方式(例如運行內存容器)來保存SD卡?