从/ var / www / html中填充文件的位置/方式?

时间:2017-09-19 17:12:44

标签: docker docker-compose dockerfile

我正在学习Docker并尝试理解volumes。查看wordpress compose及其dockerfile的这个示例,我不知道哪个命令负责将wordpress文件填充到/var/www/html

我确实看到dockerfile中有VOLUME /var/www/html命令来创建挂载点。

有命令下载wordpress文件并放入/usr/src/wordpress目录。

但我没有得到的是文件是如何进入/var/www/html的?

只是挂载到这个目录导致所有wordpress文件神奇地存储在这个?

这是其他地方码头工人这样做的吗?

编辑:在运行docker-compose up时,这些wordpress文件已被移动或复制。我不是问如何将文件移动/挂载到/var/www/html。但问题是这个事情是如何引用上面的dockerfile和docker compose文件的。

由于

1 个答案:

答案 0 :(得分:1)

在这种情况下,entrypoint正在复制文件(如果它们尚不存在)。请注意Dockerfile中的the wordpress source is added to /usr/src/wordpress。然后,当容器启动时,入口点checks if some files exist,如果不是,则为copies the wordpress source into the current directory,即WORKDIR,即/ var / www / html。

一般Docker Volume Stuff

/var/www/html指定为VOLUME,从容器的角度来看,将文件放入其中的唯一方法是将带有文件的docker卷附加到该文件。把它想象成一个挂载点。

您可以将本地文件系统附加到该卷:

docker run -v /path/to/local/webroot:/var/www/html wordpress

或者您可以创建一个docker卷并将其用于持久的,更多docker-esque对象:

docker volume create webroot

然后使用瞬态容器将文件移入其中:

docker run --rm -v /path/to/local/webroot:/var/www/html \
           -v webroot:/var/www/html2 \
           ubuntu cp -a /var/www/html/ /var/www/html2

此时您可以webroot作为可以附加到任何容器的泊坞窗卷。

docker run -v webroot:/var/www/html wordpress