Docker中的容器层和体积有什么区别?

Docker中的容器层和体积有什么区别?,docker,containers,docker-volume,ufs,Docker,Containers,Docker Volume,Ufs,在docker的上下文中,我了解图像的哪些层以及最上面的可写层是什么。如果我在没有任何-v参数的情况下运行docker容器,会创建任何卷吗?如果我指定了一个卷(它不是主机中某个位置的装载),该卷是否会成为该容器的可写层?卷和图像层在Docker中是独立的概念。对于您的第一个问题,no,没有使用-v就不会创建卷(暂时忽略Dockerfile格式确实有VOLUME动词这一事实) 如果指定由任何卷驱动程序提供的卷(默认为将装载绑定到容器文件系统中的目标位置的本地目录),则该卷与映像层无关,包括Dock

在docker的上下文中,我了解图像的哪些层以及最上面的可写层是什么。如果我在没有任何-v参数的情况下运行docker容器,会创建任何卷吗?如果我指定了一个卷(它不是主机中某个位置的装载),该卷是否会成为该容器的可写层?

卷和图像层在Docker中是独立的概念。对于您的第一个问题,no,没有使用
-v
就不会创建卷(暂时忽略
Dockerfile
格式确实有
VOLUME
动词这一事实)

如果指定由任何卷驱动程序提供的卷(默认为将装载绑定到容器文件系统中的目标位置的本地目录),则该卷与映像层无关,包括Docker引擎中使用的后端存储驱动程序提供的“可写”最顶层

具体来说,正在使用的存储驱动程序控制层堆栈以及顶层“r/w”层的管理方式。例如,overlay或devicemapper或btrfs驱动程序处理图像层的装载以及顶层的创建和管理

卷通过绑定挂载到文件系统映像中的现有(或创建的)路径而在这之外发挥作用。退出容器时,这些卷将保留在其源位置(例如,对于本地/默认卷驱动程序,在
/var/lib/docker/volumes/
中),并且在使用的存储驱动程序的管理下,未安装的层堆栈将具有层堆栈的修改“上层”,除非您在退出时移除了容器(
--rm
)。这是两个单独管理的概念,卷系统与存储后端驱动程序没有交互作用。

卷用于在容器和主机之间装载数据 如果在没有任何-v参数的情况下运行docker容器,是否会创建卷?

-v不是用于创建卷,只是用于将数据从装载到

-v[主机路径]:[容器路径]

此处为主机路径,您要将数据移动到的服务器目录路径

容器路径,容器目录路径装载日期自

如果我指定了一个卷(不是装载到主机中的某个位置),该卷是否会成为此容器的可写层?

当路径在主机中不存在,但您已将其装载到容器时,这里有两种情况

案例1:如果要将一些配置文件从计算机装载到容器中,如果容器在运行时需要该文件,那么它会在日志中抛出错误


案例2:如果要将卷从容器装载到主机。当cotainer开始运行时,它会在主机中创建一个文件夹,并将数据写入主机装载的目录。

谢谢。帮助lotSo卷绑定装载,然后。