Vic*_*rov 6 tmpfs docker docker-volume
我想在内存中运行整个 docker 容器,而不将卷映射到主机的硬盘驱动器。
此处描述的 TMPFS有助于将卷安装为“内存卷”,但我正在寻找一种方法来启动映射到内存的整个容器。
--volume-driver可能是我必须使用的,但我找不到支持的驱动程序的文档列表(不是overlay2)。
所以,我尝试过:
docker run -td --name my-container --volume-driver tmpfs container-image
docker run -td --name my-container --volume-driver memfs container-image
Run Code Online (Sandbox Code Playgroud)
但在这两种情况下,docker inspect my-container我观察到:
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/d1d112972c6b531976dd33e27edf213fc578856c3ee96b99c9afe53ad3f71a5e- ... /diff",
"MergedDir": "/var/lib/docker/overlay2/d1d112972c6b531976dd33e27edf213fc578856c3ee96b99c9afe53ad3f71a5e/merged",
"UpperDir": "/var/lib/docker/overlay2/d1d112972c6b531976dd33e27edf213fc578856c3ee96b99c9afe53ad3f71a5e/diff",
"WorkDir": "/var/lib/docker/overlay2/d1d112972c6b531976dd33e27edf213fc578856c3ee96b99c9afe53ad3f71a5e/work"
},
"Name": "overlay2"
}
Run Code Online (Sandbox Code Playgroud)
docker stats还指出这两种情况都使用默认映射策略。
有一个问题已被关闭以做到这一点。这是评论的链接https://github.com/moby/moby/issues/10490#issuecomment-311892718。
本质上,它配置 docker 将镜像保存在 RAM 中。它会做你想做的事,但如果你关闭,你就会丢失图像。
现在,我不确定你为什么会想要这样,但我会推断我认为你的需求可能是什么:
您不希望在容器运行后出现任何跟踪:然后,添加将删除始终创建的--rm文件的标志。这可以让您的运行保持干净,但可能不完全安全。
出于安全原因,您不希望将必须写入的任何数据保留在磁盘上:那么您将必须安装 tmpfs ( https://docs.docker.com/engine/reference/run/#tmpfs- mount-tmpfs-filesystems)在容器中的某个位置,并且只在那里写入。请记住,如果使用交换,内容将被写入磁盘,并且可能可以恢复。
您希望快速读取容器中已存在的数据:那么我认为最好的选择是,当容器启动时,将需要快速访问的数据复制到安装在容器中的 tmpfs 中。
我希望我能抓住你的用例并提供帮助,如果没有,请这么说:)
| 归档时间: |
|
| 查看次数: |
2627 次 |
| 最近记录: |