Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在WSL2中使用docker tmpfs在RAM上运行docker容器吗?_Docker_Windows Subsystem For Linux_Wsl 2_Tmpfs - Fatal编程技术网

我可以在WSL2中使用docker tmpfs在RAM上运行docker容器吗?

我可以在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。
如果我在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中运行?”的一些注释:

  • 它只是存储在RAM中的文件夹
    /var/lib/postgresql/data
    的内容, 不是你认为的“整个容器”

  • 在我看来,你不是在运行数据库,而是在运行一个shell。 所以,除非你从shell启动db,我想你会 在RAM中使用
    /var/lib/postgresql/data
    没有特别的优势

  • 从技术上讲,任何程序都必须加载到RAM中 工作,或至少是当前执行的部分


  • 请注意,它确实可以工作,但在WSL2下,它实际上似乎没有RAM支持。好球@Nik,我不知道。然而,你提到的帖子已经有三年了。你知道它是否仍然适用吗?它确实适用-我昨天在尝试优化WSL中的某些内容时发现了这一点。@Nik这太可悲了。我在Windows上使用WSL2开发带有11ty的静态网站,并在dev/watch模式下为输出文件夹使用
    tmpfs
    ,以避免SSD被大量写入。我的配置正在运行,但根据您的评论,为此使用
    tmpfs
    是无用的。。。你知道如何在WSL2中制作一个真正的ramdisk的任何想法/替代方案吗?我认为这并不容易,但你可以尝试寻找一个替代的tmpfs实现。或者对于您的场景,甚至网络文件系统也可以为您工作(以性能为代价)