我可以在WSL2中使用docker tmpfs在RAM上运行docker容器吗?
正在处理wsl2。我可以在WSL2中使用docker tmpfs在RAM上运行docker容器吗?,docker,windows-subsystem-for-linux,wsl-2,tmpfs,Docker,Windows Subsystem For Linux,Wsl 2,Tmpfs,正在处理wsl2。 如果我在WSL2中运行此命令: docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh 整个容器将在RAM中运行?[编辑] 正如@Nik发现的,WSL中的tmpfs当前映射到文件系统。在命令行级别,它在RAM中映射时工作,但实际上它映射到文件系统。因此,请注意这个警告,直到它按照人们的设想得到实施 根据您的第一个问题:“doc
如果我在WSL2中运行此命令:
docker run -it --rm -e POSTGRES_PASSWORD=secret --tmpfs /var/lib/postgresql/data postgres:13-alpine sh
整个容器将在RAM中运行?[编辑]
正如@Nik发现的,WSL中的tmpfs
当前映射到文件系统。在命令行级别,它在RAM中映射时工作,但实际上它映射到文件系统。因此,请注意这个警告,直到它按照人们的设想得到实施
根据您的第一个问题:“docker tmpfs是否在wsl2上工作?”
答案似乎是肯定的。实际上,请尝试运行这样的容器:
$ docker run -it --name tmptest --mount type=tmpfs,destination=/mytmp busybox
如果随后检查容器,您可以看到/mytmp
作为tmpfs
正确安装:
“挂载”:[
{
“类型”:“tmpfs”,
“来源”:“,
“目的地”:“/mytmp”,
“模式”:“,
“RW”:没错,
“传播”:”
}
]
关于第二个问题“整个容器将在RAM中运行?”的一些注释:
/var/lib/postgresql/data
的内容,
不是你认为的“整个容器”
/var/lib/postgresql/data
没有特别的优势
请注意,它确实可以工作,但在WSL2下,它实际上似乎没有RAM支持。好球@Nik,我不知道。然而,你提到的帖子已经有三年了。你知道它是否仍然适用吗?它确实适用-我昨天在尝试优化WSL中的某些内容时发现了这一点。@Nik这太可悲了。我在Windows上使用WSL2开发带有11ty的静态网站,并在dev/watch模式下为输出文件夹使用
tmpfs
,以避免SSD被大量写入。我的配置正在运行,但根据您的评论,为此使用tmpfs
是无用的。。。你知道如何在WSL2中制作一个真正的ramdisk的任何想法/替代方案吗?我认为这并不容易,但你可以尝试寻找一个替代的tmpfs实现。或者对于您的场景,甚至网络文件系统也可以为您工作(以性能为代价)