问题描述
是Docker的新手,想要在Docker中使用仅基于RAM的存储,也就是说,他不希望Docker在持久存储上保存任何东西。他发现在Linux上,Docker支持tmpfs。那么在MacOS上是否有这样的支持?他尝试设置–tmpfs标志和docker run命令在Mac上运行正常。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据Docker的官方文档,tmpfs只支持Linux系统,不支持MacOS。但是,如果你想要”RAM only storage”,你可以使用MacOS的RAM磁盘(RAM disk)来实现。以下是如何创建一个RAM磁盘的步骤:
1. 打开终端。
2. 运行以下命令来创建一个RAM磁盘:
diskutil erasevolume HFS+ 'DockerDisk' `hdiutil attach -nomount ram://2097152 `
这个命令将创建一个大小为2GB的RAM磁盘,并将其挂载到/Volumes/DockerDisk
目录下。
3. 现在,你可以将Docker的卷(volumes)指向/Volumes/DockerDisk
目录,这样就可以实现RAM only storage了。例如,你可以使用以下命令来运行容器,并将/etc/foo
目录挂载到RAM磁盘上:
docker run -v /Volumes/DockerDisk/foo:/etc/foo your_image
请注意,Docker仍然会将其虚拟机和镜像存储在磁盘上。你可以在Docker的偏好设置中查看和更改这些位置。
方案2
使用特殊的存储驱动程序可能会增加复杂性,并且需要确保MacOS正确处理它们。在MacOS上,你可以将RAM磁盘视为标准卷(volume)来使用,而无需使用任何特殊的存储驱动程序。
以下是一些用户的评论和回复,可能对你有帮助:
1. 有用户提到了一个名为”inmemory”的存储驱动程序,它似乎可以满足你的需求。你可以查看Docker的官方文档了解如何配置它。
2. 另一个用户提到,你可以将RAM磁盘视为标准卷(volume)来使用,例如:-v /Volumes/DockerDisk/foo:/etc/foo
。
3. 如果你想要移动卷(volume)而不使用GUI界面,你可以提一个新的问题,以便得到更详细的回答。
4. 有用户建议将移动卷(volume)的问题作为一个独立的问题,以便更好地区分回答。你可以在这个问题中提供更多细节。
5. 用户提供了一个新的问题链接,你可以在那里提出你的移动卷(volume)问题。
6. 第一个评论中提到的”In-memory storage driver”是针对Docker registry的,与你的问题无关。