我运行带有2个Docker镜像的服务器,其中一个构建和打包,因此在/ tmp上创建了很多短暂的东西。
我希望这个容器/ tmp不被持久性卷(union fs或volume)支持,而是使用主机的/ tmp,而tmp又是一个tmpfs卷,非常适合这种操作。保存对普通驱动器的访问会产生开销并导致访问HDD(磨损),我宁愿尽可能地留在RAM中。
有些选择是:
我是Docker的新手,也许我错过了一些明显的东西。
我搜索一种方法来指定容器停止后可以或必须删除的卷。甚至完全保留在RAM中,除非这是不可行的。 另外还有一些简单的方法来安装/ tmp作为这样的容器。
答案 0 :(得分:25)
Docker 1.10将于2月初发布(首批候选版本将于下周末发布),允许您使用--tmpfs
选项执行此操作。
例如;
docker run -it --tmpfs /tmp ubuntu
有关详细信息,请参阅此功能的pull-request; https://github.com/docker/docker/pull/13587
答案 1 :(得分:2)
如果您使用/tmp
docker run
选项运行该容器,则可以在容器的--privileged
位置安装 tmpfs 分区:
docker run -it --privileged ubuntu bash -l
root@2ed296ef6a80:/# mount -t tmpfs -o size=256M tmpfs /tmp
root@2ed296ef6a80:/# mount
...
tmpfs on / tmp type tmpfs(rw,relatime,size = 262144k)
或者您可以在docker主机上创建 tmpfs 安装并将其作为卷安装在容器中:
# TMPDIR=$(mktemp -d)
# mount -t tmpfs -o size=256M tmpfs $TMPDIR
# docker run -it -v $TMPDIR:/tmp ubuntu bash -l
root@0f0555ec96cb:/# mount | grep /tmp
tmpfs on / tmp type tmpfs(rw,relatime,size = 262144k)