2016-11-25 64 views
1

使用docker run創建容器時,是否有方法將文件從泊塢窗卷自動複製到它所裝載的主機目錄?Docker將容器卷文件複製到第一次運行的主機

當運行

docker run -d -v /localpath:containerpath image 

在containerpath找到的文件不會被複制到我的localPath目錄。

有沒有辦法做到這一點?該映像包含需要在主機上進行本地開發的目錄。

+1

選項-v允許聲明本地主機和容器之間的共享卷,每個文件通過本地hsot或通過容器創建的鏡頭對另一個可見。 –

+0

可能相關:http://stackoverflow.com/questions/36107442/mount-docker-host-volume-but-overwrite-with-containers-contents – nwinkler

+0

簡單:添加一個腳本,以任何你想要的方式進行復制工作。附加一行以調用.bash_profile中的腳本或您系統的等效腳本。 –

回答

1

我不知道的是,當從容器的外殼向卷添加文件時,它也在主機目錄中創建。所以經過很多調試和測試之後,我已經設法達到我想要的效果

如果有人在將來需要這樣做,可以進行澄清:自動生成一個Docker容器,該容器克隆git repo並將主機public_html目錄公開給隨着文件體積已經複製到主機以供編輯

# Create Volume for the directory 
VOLUME /var/www/html 

COPY scripts/start.sh /start.sh 
RUN chmod -v +x /start.sh 
CMD ["/start.sh"] 

start.sh包含代碼克隆回購協議,如果該目錄爲空

#!/bin/bash 
if [ "$(ls -A /var/www/html)" ]; then 
echo "Directory already cloned" 
else 
echo "Repo files do not exist" ; 
git clone ... 
fi 

感謝您的幫助

相關問題