2016-12-11 1 views
1

Я пытаюсь понять, в какой степени изображение докера имеет доступ к каталогу/tmp /.У изображений docker есть доступ к dmp tmp?

В моем случае я использую frolvlad/alpine-oraclejdk8: тонкое изображение, и моему приложению нужно написать временную папку.

Когда я определить TMPFS, как это в моем Докер-композе файл (v2): df_server: image: "${DF_IMAGE}" build: . tmpfs: - /tmp Я получаю сообщение об ошибке сказав, что каталог уже существует. Когда я пытаюсь получить доступ к каталогу из моего webapp, я получаю сообщение об ошибке, когда каталог не существует.

Когда я определяю dmp tmpfs как что-либо еще, например. tmpfs: - /foobar Мое webapp может получить доступ и использовать каталог foobar.

ответ

2

Большинство изображений на основе дистрибутива будет содержать /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-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> 

Я не уверен, как вы получаете ошибку «каталог уже существует».

Возможно, попробуйте то же самое на другом хостеле Docker? Вытянуть последние frolvlad/alpine-oraclejdk8:slim?