如果我要像这样运行 nginx:
docker run -i -t -p 80:80 \
-v /docker/dev:/dev \
-v /docker/var/www:/var/www \
-v /docker/var/log/nginx:/var/log/nginx \
-v /docker/etc/nginx:/etc/nginx \
--name clmnginxbash quasaur/nginximage /bin/bash
...而且我正在使用 Docker HOST 的文件系统来存储nginx
的配置和网站本身,我不应该为这些共享包含 VOLUME 语句,还是应该?
VOLUME ["/etc/nginx", "/var/www","/var/log/nginx"]
事实上,我不应该能够从 Dockerfile 中的图像中删除这些目录,因为它们不会被使用吗?
RUN rm -rf /usr/share/nginx/www /etc/nginx /var/log/nginx
感谢您的反馈意见!
在指令中指定
-v
at run 或 volumesVOLUME
都挂载绕过 UFS 以存储持久数据的卷。请参阅https://docs.docker.com/terms/layer/#ufs-def。它是容器中的实际挂载:容器中没有安装任何东西。让我们再试一次
-v /mnt
:酷,我们有一个持久的坐骑。但是我们没有在主机上指定一个地方来存储它……它实际上住在哪里?
正如您已经指出的那样,您可以将此挂载映射到主机上的目录,方法是为其添加前缀:
因此,要回答您的两个问题,不,不需要 VOLUME 说明
Dockerfile
。你应该删除它们吗?我猜,假设您在不指定-v
.