当前位置: 首页 > 知识库问答 >
问题:

DockerFile:理解卷指令

淳于鹏
2023-03-14

让我们举个例子。

VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
  • https://github.com/dockerfile/nginx/blob/master/dockerfile
  • http://www.tech-d.net/2014/11/03/docker-indepth-volumes/
  • 如何在生成期间将主机卷装入Dockerfile中的docker容器
  • http://jpetazzo.github.io/2015/01/19/DockerFile-and-Data-in-Volumes/

共有1个答案

谢铭
2023-03-14

容器的卷只是主机上的目录,而不管它们是由什么方法创建的。如果您没有在主机上指定目录,Docker将为卷创建一个新目录,通常在/var/lib/Docker/vfs下。

无论该卷是如何创建的,通过使用Docker inspect命令都很容易找到它在主机上的位置,例如:

$ ID=$(docker run -d -v /data debian echo "Data container")
$ docker inspect -f {{.Mounts}} $ID
[{0d7adb21591798357ac1e140735150192903daf3de775105c18149552a26f951 /var/lib/docker/volumes/0d7adb21591798357ac1e140735150192903daf3de775105c18149552a26f951/_data /data local  true }]
 

我们可以看到,Docker在/var/lib/Docker/volumes/0D7ADB21591798357AC1E140735150192903DAF3DE775105C18149552A26F951/_data处为卷创建了一个目录。

您可以自由地从主机修改/添加/删除此目录中的文件,但请注意,您可能需要使用sudo获得权限。

Docker只会在两种情况下删除卷目录:

  • 如果--rm选项被赋予Docker Run,则当容器退出时,所有卷都将被删除
  • 如果使用Docker RM-V container删除容器,则将删除所有卷。
    null

此处提供更多信息:

https://blog.container-solutions.com/marneting-volumes-docker

 类似资料:
  • 下面是我的“DockerFile”的内容

  • 本文向大家介绍Dockerfile指令详解,包括了Dockerfile指令详解的使用技巧和注意事项,需要的朋友参考一下 什么是Dockerfile Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器

  • Dockerfile 指令详解 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,其实 Dockerfile 功能很强大,它提供了十多个指令。下面我们继续讲解其他的指令。

  • 问题内容: 以下是我的“ Dockerfile”的内容 在此文件中,我期望“ VOLUME。/ usr / src / app”指令将主机上当前工作目录的内容安装在要安装在容器的/ usr / src / app文件夹中的主机中。 请让我知道这是正确的方法吗? 问题答案: 官方Docker教程说: 数据卷是一个或多个容器中的一个特别指定的目录,绕过联合文件系统。数据量为持久性数据或共享数据提供了几

  • 问题内容: 我有一个Dockerfile扩展了声明一个的图像。有没有一种方法可以覆盖指令,从而“删除”指令? 问题答案: 没有。 这样做的唯一方法是,如果您克隆用作基础图像(in中的一个)的图像,然后手动删除该指令。然后构建它并用作您的基础。

  • 我在docker文档上读到了如何使用ONBUILD指令,但一点也不清楚。 有人能给我解释一下吗?