2016-11-25 72 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 

感谢您的帮助

相关问题