Dockerfile卷指令创建的卷类型是什么?
Docker使用较新的Dockerfile卷指令创建的卷类型是什么?,docker,dockerfile,Docker,Dockerfile,Docker使用较新的--mount参数创建卷。这里,key=value对指定卷选项。我对参数类型特别感兴趣 束缚 卷 tmpfs 当我使用Docker时,Docker创建了哪种类型(我如何指定它?) Dockerfile VOLUME /etc/nginx 我想看看docker volume ls /etc/nginx 然后我可以使用另一个带有--from volume的容器来访问它。我错过了什么 文档仅说明启动容器时必须指定装入点 主机目录在容器运行时声明:主机目录(挂载点)本质上依赖
--mount
参数创建卷。这里,key=value对指定卷选项。我对参数类型
特别感兴趣
- 束缚
- 卷
- tmpfs
VOLUME /etc/nginx
我想看看docker volume ls
/etc/nginx
然后我可以使用另一个带有--from volume
的容器来访问它。我错过了什么
文档仅说明启动容器时必须指定装入点
主机目录在容器运行时声明:主机目录(挂载点)本质上依赖于主机。这是为了保持映像的可移植性,因为不能保证给定的主机目录在所有主机上都可用。因此,无法从Dockerfile中装载主机目录。卷指令不支持指定主机目录参数。创建或运行容器时必须指定装入点
这个问题可以重新表述为:我如何与Dockerfile关联
(我完全了解Docker daemon manager拥有卷而不是使用绑定装载的好处。这是我的意图)Dockerfile中的
卷
指令创建绑定装载在容器中的匿名卷。有关更多信息,请参考文档:“除了名称之外,命名卷和匿名卷的行为方式相同”。例如:
FROM ubuntu:18.04
VOLUME ["/src"]
RUN mkdir /src && \
touch /src/file.txt
构建映像:docker Build--rm-tso:57703848。
并运行容器:docker run--rm--name mycontainer-it--entrypoint cat-d so:57703848
(设置cat
以保持容器在后台运行,仅用于示例目的)
现在,您可以使用--volumes from
将mycontainer
中的卷绑定到另一个容器中:docker run--rm-it--volumes from mycontainer ubuntu:18.04
注意:“匿名卷第一次装入容器时没有给出明确的名称,因此Docker会给它们一个随机名称,保证在给定Docker主机中是唯一的。”-可能会出现
docker卷ls
,即:CCB199AE1396C2B9D49AC58559C739BD40B2EF37AF50191FA3600AB6552FB20
(随机生成)。您可以在运行
中将命名卷装载到匿名卷,即:docker运行--rm--name mycontainer-v myvolume:/src--it--entrypoint cat-d so:57703848
,--来自
的卷将工作相同,docker volume ls
将输出myvolume
Dockerfile
中的volume
指令将创建绑定装入容器中的匿名卷。有关更多信息,请参考文档:“除了名称之外,命名卷和匿名卷的行为方式相同”。例如:
FROM ubuntu:18.04
VOLUME ["/src"]
RUN mkdir /src && \
touch /src/file.txt
构建映像:docker Build--rm-tso:57703848。
并运行容器:docker run--rm--name mycontainer-it--entrypoint cat-d so:57703848
(设置cat
以保持容器在后台运行,仅用于示例目的)
现在,您可以使用--volumes from
将mycontainer
中的卷绑定到另一个容器中:docker run--rm-it--volumes from mycontainer ubuntu:18.04
注意:“匿名卷第一次装入容器时没有给出明确的名称,因此Docker会给它们一个随机名称,保证在给定Docker主机中是唯一的。”-可能会出现
docker卷ls
,即:CCB199AE1396C2B9D49AC58559C739BD40B2EF37AF50191FA3600AB6552FB20
(随机生成)。您可以在运行
中将命名卷装载到匿名卷,即:docker运行--rm--name mycontainer-v myvolume:/src--it--entrypoint cat-d so:57703848
,来自的卷将工作相同,docker卷ls
将输出myvolume
,这就是我所寻找的。我已经准备好开始阅读Go源代码了…很高兴我能提供帮助-编辑了一个关于命名匿名卷的注释。我希望Docker的文档能够如此精确。Docker通常有很好的文档。(不想对他们太苛刻)我倾向于同意,一开始我对一般的书很困惑。当我发现一天结束时,“docker卷”只不过是在/var/lib/docker/volumes中创建的目录,它们是绑定装载的,就像使用-v标志一样,事情真的开始发生了。顺便说一句,您可能希望在运行后将卷指令移动到。我认为VOLUME正在创建路径,如果它不存在,mkdir
正在尝试再次创建它。这就是我正在寻找的。我已经准备好开始阅读Go源代码了…很高兴我能提供帮助-编辑了一个关于命名匿名卷的注释。我希望Docker的文档能够如此精确。Docker通常有很好的文档。(不想对他们太苛刻)我倾向于同意,一开始我对一般的书很困惑。当我发现一天结束时,“docker卷”只不过是在/var/lib/docker/volumes中创建的目录,它们是绑定装载的,就像使用-v标志一样,事情真的开始发生了。顺便说一句,您可能希望在运行后将卷指令移动到。我认为VOLUME正在创建路径,如果它不存在,mkdir
正在尝试再次创建它。