Docker添加文件到VOLUME

我有一个Dockerfile将一些文件复制到容器中,然后创build一个VOLUME。

... ADD src/ /var/www/html/ VOLUME /var/www/html/files ...

src文件夹中是一个文件夹,在这个文件夹中有一些文件需要在容器第一次启动时复制到VOLUME中。

我以为第一次创build容器时,它使用了卷中指定的原始目录的内容,但事实并非如此。

那么我怎样才能把文件放到这个文件夹中? 我是否需要创build一个额外的文件夹并复制一个脚本(我希望不^^)?

感谢一些tipps!

不pipe你在你的Dockerfile中只是在构build时 (而不是在你创build一个新的容器时)进行评估。

如果要从容器中的可用主机创build文件,请使用数据卷 :

 docker run -v /host_dir:/container_dir ... 

如果您只是想将文件从主机复制到容器中作为一次性操作,您可以使用:

 docker cp /host_dir mycontainer:/container_dir 

问题是你的ADD语句。 你也可能不知道如何访问卷。 比较你的努力与下面的演示:

 FROM alpine #, or your favorite tiny image ADD src/files /var/www/html/files VOLUME /var/www/html/files 

构build一个名为“dataimg”的图像:

 docker build -t dataimg . 

使用dataimg图像创build一个名为“datacon”的数据容器:

 docker run --name datacon dataimg /bin/cat 

将datacon中的卷挂载到您的nginx容器中:

 docker run --volumes-from datacon nginx ls -la /var/www/html/files 

你会看到/ var / www / html /文件的列表反映了src / files的内容