2016-05-05 8 views
3

Dockerfileを設定して、指定したドッカーコンテナディレクトリに自分のホストディレクトリをマウントしようとしています(コード変更がすぐに反映される)。 docker run -p 3000:3000 -d -v ~/Projects/test:/app testを実行するとファイルがマウントされ、すべて正常に動作します。しかし、コンテナを閉じると、docker-composeファイルからvolumesを実行した場合のように、ファイルの変更がコンテナ内に残りません。ここでDockerfile VOLUMEをドッキング用のボリュームとして動作させる

は私Dockerfileです:ここでは

FROM node:onbuild 
EXPOSE 3000 
RUN mkdir /app 
VOLUME ./:/app/ 
WORKDIR /app/ 
RUN npm install -g nodemon 
CMD nodemon server.js 

は作業ドッキングウィンドウ-compose.ymlです:Dockerfileで

test: 
    build: ./ 
    volumes: 
    - ./:/app/ 
    working_dir: /app/ 
    command: npm start 
    ports: 
    - "3000:3000" 

答えて

4

VOLUMEコマンドがわずかに異なる意味を持つ:

  1. あなたできません Docke内のマウントされたボリュームを定義します。 RFILE
  2. それだけだからあなたDockerfileで、VOLUME ./:/app/VOLUME /app/に変更する必要があります間のコンテナボリューム

を指定するために使われています。 docker-composeの定義は、dockerにローカルディレクトリdir ./appをコンテナにマウントするように指示します。


docker-compose-vオプションとvolumesタグは、同じように動作します。ホストディレクトリはコンテナディレクトリにマウントされます。コンテナディレクトリのイメージに存在していたファイルは、ホストディレクトリのファイルに置き換えられます。

関連する問題