2016-12-11 13 views
1

ドッカーイメージが/ tmp /ディレクトリにどれだけアクセスできるかを理解しようとしています。ドッカーの画像はtmpディレクトリにアクセスできますか?

私の場合、私はfrolvlad/alpine-oraclejdk8:slimイメージを使用しています。私のアプリケーションはtempフォルダに書き込む必要があります。

私は私のドッキングウィンドウ-COMPOSE(V2)ファイルにこのようなtmpfsのを定義する場合: df_server: image: "${DF_IMAGE}" build: . tmpfs: - /tmp 私はディレクトリが既に存在するというエラーを取得します。 Webappからディレクトリにアクセスしようとすると、ディレクトリが存在しないというエラーが表示されます。

私は何か他のものとしてtmpfsディレクトリを定義します。 tmpfs: - /foobar 私のwebappは、ディレクトリfoobarにアクセスしてそれを使用できます。

答えて

2

ディストリビューションに基づくほとんどの画像には、画像内に/tmpというディレクトリがあります。これは、Dockerが使用するように設定されているストレージドライバを使用します。

$ 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のに書き込むことができ

$ docker run -ti frolvlad/alpine-oraclejdk8:slim ls -ld /tmp 
drwxrwxrwt 2 root  root   4096 Oct 18 18:58 /tmp 

ではなく、メモリ/ 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を引き出しますか?

関連する問題