docker Image是否可以访问tmp目录?

docker Image是否可以访问tmp目录?,docker,docker-compose,Docker,Docker Compose,我试图了解docker映像在多大程度上可以访问/tmp/目录 在我的例子中,我使用的是frolvlad/alpine-oraclejdk8:slim图像,我的应用程序需要写入临时文件夹 当我在docker compose(v2)文件中这样定义tmpfs时: df_服务器: 图像:“${DF_image}” 生成:。 tmpfs: -/tmp 我收到一个错误,说目录已经存在。当我试图从我的webapp访问目录时,我收到一个错误,说该目录不存在 当我将tmpfs dir定义为其他任何内容时,例如

我试图了解docker映像在多大程度上可以访问/tmp/目录

在我的例子中,我使用的是frolvlad/alpine-oraclejdk8:slim图像,我的应用程序需要写入临时文件夹

当我在docker compose(v2)文件中这样定义tmpfs时:

df_服务器:
图像:“${DF_image}”
生成:。
tmpfs:
-/tmp
我收到一个错误,说目录已经存在。当我试图从我的webapp访问目录时,我收到一个错误,说该目录不存在

当我将tmpfs dir定义为其他任何内容时,例如。

tmpfs:
-/foobar

我的webapp可以访问和使用foobar目录。

大多数基于发行版的图像都会在图像中附带
/tmp
目录。这将使用Docker设置为使用的任何存储驱动程序

$ docker run -ti frolvlad/alpine-oraclejdk8:slim ls -ld /tmp
drwxrwxrwt    2 root     root          4096 Oct 18 18:58 /tmp
可以写信给谁

$ docker run -ti frolvlad/alpine-oraclejdk8:slim \
    time dd if=/dev/zero of=/tmp/zero bs=4k count=64k
32768+0 records in
32768+0 records out
real    0m 0.84s
user    0m 0.00s
sys     0m 0.11s
安装tmpfs会增加内存中/tmp

$ docker run -ti --tmpfs /tmp frolvlad/alpine-oraclejdk8:slim \
    time dd if=/dev/zero of=/tmp/zero bs=4k count=64k
65536+0 records in
65536+0 records out
real    0m 0.13s
user    0m 0.01s
sys     0m 0.12s
你应该能够从中读写(不同的基于阿尔卑斯山的图像)

docker run-ti--tmpfs/tmp mhart/alpine节点-e'
fs.writeFile(`/tmp/test`、`test`、(err、res)=>{
log(`write`,err,res)
fs.readFile(`/tmp/test`,(err,data)=>console.log(`read`,err,data))
})'
空未定义
无效的
我不确定您是如何得到“目录已存在”错误的

也许在不同的Docker主机上尝试相同的方法?拉最新的
frolvlad/alpine-oraclejdk8:slim

docker run -ti --tmpfs /tmp mhart/alpine-node node -e '
  fs.writeFile(`/tmp/test`, `test`, (err, res) => {
    console.log(`write`, err, res)
    fs.readFile(`/tmp/test`, (err, data) => console.log(`read`, err, data))
  })'

null undefined
null <Buffer 74 65 73 74>