我有一个Dockerfile将一些文件复制到容器中,然后创建一个VOLUME.
...
ADD src/ /var/www/html/
VOLUME /var/www/html/files
...
Run Code Online (Sandbox Code Playgroud)
在src文件夹中是一个文件夹,在这个文件夹中是我需要在容器第一次启动时复制到VOLUME的一些文件.
我认为第一次创建容器时它会使用卷中指定的原始目录的内容,但事实并非如此.
那么如何将文件存入此文件夹?我是否需要创建一个额外的文件夹并使用脚本复制它(我希望不是)?
Seb*_*ian 10
无论你在Dockerfile中放置什么,都只是在构建时进行评估(而不是在创建新容器时).
如果要从容器中可用的主机创建文件,请使用数据卷:
docker run -v /host_dir:/container_dir ...
Run Code Online (Sandbox Code Playgroud)
如果您只想将文件从主机复制到容器作为一次性操作,您可以使用:
docker cp /host_dir mycontainer:/container_dir
Run Code Online (Sandbox Code Playgroud)
问题出在您的 ADD 语句上。此外,您可能不了解如何访问卷。将您的努力与下面的演示进行比较:
FROM alpine #, or your favorite tiny image
ADD src/files /var/www/html/files
VOLUME /var/www/html/files
Run Code Online (Sandbox Code Playgroud)
构建一个名为“dataimg”的图像:
docker build -t dataimg .
Run Code Online (Sandbox Code Playgroud)
使用 dataimg 图像创建一个名为“datacon”的数据容器:
docker run --name datacon dataimg /bin/cat
Run Code Online (Sandbox Code Playgroud)
将 datacon 中的卷挂载到 nginx 容器中:
docker run --volumes-from datacon nginx ls -la /var/www/html/files
Run Code Online (Sandbox Code Playgroud)
你会看到 /var/www/html/files 的列表反映了 src/files 的内容
| 归档时间: |
|
| 查看次数: |
13734 次 |
| 最近记录: |