问题描述
docker tmpfs是否在wsl2上工作。
如果我在WSL2中运行它:
docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh
整个容器将在RAM中运行吗?
解决方法
根据您的第一个问题:“ docker tmpfs是否在wsl2上运行?” 看来答案是肯定的。实际上,尝试运行这样的容器:
$ docker run -it --name tmptest --mount type=tmpfs,destination=/mytmp busybox
如果您随后检查该容器,则可以看到/mytmp
已正确安装为tmpfs
:
"Mounts": [
{
"Type": "tmpfs","Source": "","Destination": "/mytmp","Mode": "","RW": true,"Propagation": ""
}
]
关于第二个问题的一些注释“整个容器将在RAM中运行吗?” :
-
仅仅是存储在RAM中的文件夹
/var/lib/postgresql/data
的内容, 而不是“整个容器” 。 -
在我看来,您不是在运行数据库,而是在运行Shell。 因此,除非您从外壳启动数据库,否则我猜您将拥有 在RAM中拥有
/var/lib/postgresql/data
并没有什么特别的优势。 -
从技术上讲,任何程序都必须加载到RAM中 工作,或者至少是当前执行的部分。