2015-07-18 32 views
2

我試圖自動創建使用Docker的開發環境和部署。這裏是我的我的Dockerfile的小例子:Dockerfile VOLUME定義來掛載項目樹

FROM java 
VOLUME .:/hello 

,並建立它作爲

docker build -t hello-server . 

然後我運行圖像hello-server,請訪問它的/hello目錄,它的存在,但是是空的。

但是,當我使用

docker run -i -t -v $(pwd):/hello2 hello-server 

/hello2包含自述,Dockerfile和項目的其他文件運行的形象。如何正確定義來自Dockerfile的卷安裝?

回答

2

這不起作用:

VOLUME .:/hello 

不能指定主機目錄的Dockerfile卷。原因是它不可移植。

要麼將​​文件複製到圖像中,要麼與COPY一樣,要麼像剛纔一樣在運行時裝入卷。

+0

看起來Dockerfile中的VOLUME是無用的。我可以通過'docker run -v hostdir:containerdir'來掛載主機目錄。 – firelyu

+0

這遠不是無用的,你只是不能指定主機目錄,所以文件將被放置在Docker控制的主機上的一個目錄中。 –