如果我在本地主机中有一个日志文件夹,位于:
/var
/logs
apache.logs
elasticsearch.logs
etc...
我想将主机的 / var / logs 目录安装到Docker容器内部的路径中,例如 / usr / var / logs / ,我该如何在dockerfile中执行此操作?因此,每次更新日志文件时,也可以在容器中对其进行访问。 谢谢
答案 0 :(得分:1)
您不能在volumn
上安装Dockerfile
原因:
Dockerfile
将构建一个image
,image
在每台计算机主机上都是独立的。
Image
应该在同一平台for example on linux platform it can be running on fedora, centos, ubuntu, redhat...etc
上的任何地方运行
因此,您只需将volumn
安装到container
中。因为container
将在指定的计算机主机上运行。
希望您能理解。对不起,我的英语不好。
答案 1 :(得分:0)
尝试docker run
命令中的-v option。
docker run -itd -v /var/logs:/usr/var/logs image-name
这会将主机的/var/logs
目录安装到容器的/usr/var/logs
目录上。
希望这会有所帮助。
更新:
要在dockerfile中使用source
和dest
挂载目录,请使用this hack(虽然不是100%肯定)。
RUN --mount=target=/usr/var/logs,type=bind,source=/var/logs
答案 2 :(得分:0)
您可以通过两种方式实现它-https://docs.docker.com/storage/bind-mounts/
$ docker run -d -it --name devtest --mount type=bind,source=/var/logs,target=/usr/var/logs image:tag
$ docker run -d -it --name devtest -v /var/logs:/usr/var/logs image:tag