Dockerfile中体积与码头工人- v的区别是什么

  介绍

这篇文章主要介绍Dockerfile中体积与码头工人- v的区别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Dockerfile中的卷挂载与码头工人- v命令挂载,两者有明显区别:

1,卷

Dockerfile中体积方式挂载到宿主机上的是匿名卷,在宿主机上是自动匿名挂载到/var/lib/docker/volumes/目录下的,代码如下:

得到frolvlad/alpine-java: jre8-slim   MAINTAINER  oas.cloud   COPY  nickdir 。   VOLUME /usr/地方/美洲国家组织/文件/WORKDIR /usr/地方/美洲国家组织/

上述体积/usr/local/oas/file/定义的是容器内目录所在路径,在容器创建过程中会在容器中创建该目录,而宿主机上的挂载目录名是随机生成的,

例如:

/var/lib/码头工人/卷/593 fda6d7b8296bfca22894b326727c734133eebb11c9bc2c25a73b892157a37

这里宿主机上的

/var/lib/码头工人/卷/593 fda6d7b8296bfca22894b326727c734133eebb11c9bc2c25a73b892157a37

目录对应的就是容器中的/usr/local/oas/file/目录

2,码头工人- v

码头工人- v可以指定挂载到宿主机的具体目录,相对于Dockerfile的卷挂载方式更具有可控性,代码如下:

,美元docker  run  -name  tengine-web  -d  -p  9527:80  -p  9000:9000  \   -v /usr/地方/tengine/日志:/var/log/nginx  \   -v /usr/地方/tengine/conf.d:/etc/nginx/conf.d  \   -v /usr/地方/tengine/conf/nginx.conf:/etc/nginx/nginx.conf  \   -v /usr/地方/tengine/html:/usr/share/nginx/html  \   -v /usr/地方/美洲国家组织/文件:/usr/地方/美洲国家组织/file  nginx

上述命令就可以将宿主机的/usr/local/tengine/logs等目录挂载到容器的/var/log/nginx等对应目录,冒号前为宿主机目录(绝对路径),冒号后为镜像内挂载的路径(绝对路径)。

<强>补充:码头工人数据卷挂载命令体积(- v)与山的区别

一、前言

用户可以通过码头工人的运行——体积/- v或选山项来创建带有数据卷的容器,但这两个选项有些微妙的差异,在这里总结梳理一下。

二,命令用法

<代码>——体积(- v)

参数,体积(或简写为- v)只能创建绑定挂载。示例:

docker  run ——name  CONTAINER_NAME 美元;-it  \   -v  $ PWD/$ CONTAINER_NAME/app:/app: rw  \   -v  $ PWD CONTAINER_NAME美元/数据:/数据:ro  \   avocado-cloud: latest /bin/bash

注释:

命令格式:

 [[HOST-DIR:] CONTAINER-DIR[:选项]]]

如果指定HOST-DIR则必须是绝对路径,如果路径不存在则会自动创建

实例中的rw为读写,ro为只读

<代码>——山

参数——山默认情况下用来挂载卷,但也可以用来创建绑定挂载和tmpfs。如果不指定类型选项,则默认为挂载卷,卷是一种更为灵活的数据管理方式,体积可以通过码头工人卷命令集被管理。示例:

docker  run ——name  CONTAINER_NAME 美元;-it  \   ——mount  type=绑定、源/$=$ PWD CONTAINER_NAME/应用,目的地=/app  \   ——mount 源=$ {CONTAINER_NAME}拼,目的地=/数据,readonly  \   avocado-cloud: latest /bin/bash

注释:

挂载卷命令格式:

=体积(type=体积)来源,目的地=/道路//容器[,……)

创建绑定挂载命令格式:

=绑定类型,源=/道路//主机上,目标=/道路//容器[,……)

如果创建绑定挂载并指定源则必须是绝对路径,且路径必须已经存在

示例中只读的表示只读

三,差异总结

1,创建绑定挂载和挂载卷的比较

对比项绑定mountvolumeSource位置用户指定/var/lib/码头工人/卷/源为空覆盖桌子为空保留桌子内容源非空覆盖桌子内容覆盖桌子内容源种类文件或目录只能是目录可移植性一般(自行维护)强(码头工人托管)宿主直接访问容易(仅需乔恩)受限(需登陆根用户)*

*注释:

码头工人无法简单地通过sudo乔恩someuser: - r/var/lib/docker/volumes/somevolume来将卷的内容开放给主机上的普通用户访问,如果开放更多权限则有安全风险。而这点上Podman的设计就要理想得多,体积存放在$ HOME/1镜?分享/集装箱/存储/卷/路径下,即提供了便捷性,又保障了安全性。

无需根权限即可运行容器,这正是Podman的优势之一,实际使用过程中的确受益良多。

Dockerfile中体积与码头工人- v的区别是什么