挂载数据命令
选择使用 -v还是–mount
volumes和Bind mounts都可以通过使用标志-v或–volume来挂载到容器中,只是格式有些许不同。tmpfs可以使用标志–tmpfs进行挂载。然而,在Docker17.06及其以上版本中,我们推荐使用–mount来对容器或服务进行这三种方式的挂载,因为这种格式更加清晰。
①如果本地数据卷或者本地目录尚未创建,-v命令则会自动创建,–mount则会报错
②如果是容器里的目录不存在,两者都会自动创建.
-v 命令
-v 或 –volume 标志:由三个由冒号(:)分隔的字段组成。这些字段必须按照正确的顺序排列,每个字段的含义并不明显。
对于命名卷,第一个字段是卷的名称,并且在给定主机上是唯一的。对于匿名卷,第一个字段被省略。
第二个字段是文件或目录在容器中的挂载路径。
第三个字段是可选的,并且是一个逗号分隔的选项列表,例如 ro。这些选项在下面讨论。
=》推荐使用–mount 选项命令
提示:初学者应该使用 –mount 语法。有经验的用户会更熟悉 -v 和 –volume 语法,但是仍然建议使用 –mount 语法,因为调查显示它更加易用。
—mount:由多个键值对组成,=。—mount要比-v或者–volume命令更长,但是更容易理解。
- 要挂载的类型 type,可以是bind,volume或者tmpfs,省略该字段则默认为volume。
- 要挂载的源 source,volumes卷的名字,挂载匿名volume可以省略。source可缩写为src。
- 要挂载的目的地 destination,挂载到容器中的文件或目录路径。可也缩写为dst或者使用target。
- readonly,挂载在容器中为只读。
- volume-opt,可选属性,可以多次使用。
注意:
- 使用 –mount 标志来绑定挂载 Docker 主机中不存在的文件或目录时,Docker 不会自动为你创建,而是产生报错。
- 当挂载的类型type=bind时,宿主机的目录或文件(必须是绝对路径)被挂载到容器中(容器内可以是相对路径)。
- 当使用bind mounts方式时,宿主机的目录或文件被挂载到容器中。尽可能的将该文件所在的目录挂载到容器内,当然有时(例如一些软件的配置文件)只能挂载文件到容器