让我们举个例子。
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]
容器的卷只是主机上的目录,而不管它们是由什么方法创建的。如果您没有在主机上指定目录,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
删除容器,则将删除所有卷。此处提供更多信息:
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指令,但一点也不清楚。 有人能给我解释一下吗?