Docker匿名挂载和具名挂载的具体使用

 更新时间:2021年12月28日 16:53  点击:335 作者:我是坑货

数据卷volume

提到这个匿名挂在和具名挂载,其实要先普及一个知识,就是什么是volumes,这个volumes就是数据卷的意思。我们docker挂载会用到这个卷。

数据卷的用处就是一个可供一个或者多个容器使用的特殊目录,他绕过UFS就是什么联合文件系统,提供了很多功能:
(1)数据卷可以多个容器共享或者重用
(2)对数据卷修改会立马生效
(3)对数据卷的更新不会影响镜像
(4)数据卷默认会一直存在,即使容器被删除了(结合2,3点特别像nacos)

查看数据卷的命令可以用:

docker volume --help

实际上命令内容也不多如下:

在这里插入图片描述

实际上创建volume不用之前去创建,你挂载的时候命名,找不到他就会去根据你给的名字的创建一个新的有名字而不是一串哈希码的名字的数据卷volume。

匿名挂载和具名挂载

在前面的数据卷volume的知识补充下,实际上匿名挂在和具命挂载就能知道了,一个是没给数据卷名字的挂载,一个是给了指定数据卷名字的挂载。

比如接着上次的挂载,我们是指定了指定路径的挂载,其实我们可以更简单挂载,连宿主机的指定路径不给,直接-v挂载docker容器的路径就可以。如下匿名挂载安装nginx。

# 匿名挂载
-P 大写的P, 映射随机端口
-v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx

实际上会返回一个哈希码,这个就是匿名挂载的数据卷的名字,你根据这个哈希码也可以找到对应的数据卷,对你来说是匿名的,实际人家还会给一个名字的。我们可以通过 volume ls命令来查看都有什么数据卷。

docker volume ls

那这个具名挂载就要指定数据卷,类似我们之前的指定路径挂载,但是这个我们不适用具体的指定路径而是数据卷的名字。

# VOLUME NAME 当前显示为匿名数据卷, 在 -v 挂载的时候只写了容器内的路径,没有写宿主机的路径
# 具名挂载
# 通过 -v 卷名:容器内路径
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx

数据卷的位置

我们既然设置了具体的数据卷,且对容器进行了挂载,也知道数据卷的用处,那数据卷在哪里呢?毕竟挂载的东西都在那里,看一眼位置在哪省着被误删了。

实际他在docker的下面具体路径是:

/var/lib/docker/volumes/xxxx/_data

我们可以cd到这个路径下面看一下数据卷,像我就cd到第二个具名挂载nginx的数据卷目录下面看一下具体结构

在这里插入图片描述

总结一下我们挂载的方式都有哪些:

如何确定是具名挂载还是匿名挂载, 亦或是指定路径挂载?
-v 容器内路径 # 匿名挂载
-v 数据卷名:/容器内路径 # 具名挂载
-v /宿主机路径:/容器内路径 # 指定路径挂载

# 通过 -v 容器内路径: ro rw 改变读写权限
# ro readonly           只读
# rw readwrite        读写
# 如果设置了容器权限, 容器对挂载出来的数据就有权限限定了. 
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:rw nginx
# ro    只要看到ro就说明这个路径只能通过宿主机来操作, 容器内部是无法操作

到此这篇关于Docker匿名挂载和具名挂载的具体使用的文章就介绍到这了,更多相关Docker匿名挂载和具名挂载内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/FeiChangWuRao/article/details/12215818

[!--infotagslink--]

相关文章

  • docker 启动elasticsearch镜像,挂载目录后报错的解决

    这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • 解决Docker中的error during connect异常情况

    这篇文章主要介绍了解决Docker中的error during connect异常情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-22
  • docker部署confluence的完整步骤

    这篇文章主要介绍了docker部署confluence的完整步骤,这里的镜像并不是小编自己写的是基于他人打包的文中有详细介绍,需要的朋友可以参考下...2021-06-11
  • 解决docker挂载的目录无法读写问题

    这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-19
  • docker swarm外部验证负载均衡时不生效的解决方案

    这篇文章主要介绍了docker swarm外部验证负载均衡时不生效的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-27
  • 教你使用Portainer管理多台Docker容器环境的方法

    这篇文章主要介绍了Portainer管理多台Docker容器环境,本文给大家介绍的非常详细,包括环境准备及管理docker的详细过程,需要的朋友可以参考下...2021-11-11
  • docker端口映射及外部无法访问问题

    这篇文章主要介绍了docker端口映射及外部无法访问问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-19
  • Docker 解决openjdk容器里无法使用JDK的jmap等命令问题

    这篇文章主要介绍了Docker 解决openjdk容器里无法使用JDK的jmap等命令问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-04
  • 使用rpm安装指定版本docker(1.12.6)的详细步骤

    为了防止安装高版本的docker引发的错误,需要安装1.12.6版本的docker,下面小编给大家带来了使用rpm安装指定版本的docker(1.12.6)的步骤,感兴趣的朋友一起看看吧...2021-08-11
  • 一文搞定Docker安装ElasticSearch的过程

    通过本文可以帮助大家快速学习Docker安装ElasticSearch的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-08-31
  • 一条命令重启所有已停止的docker容器操作

    这篇文章主要介绍了一条命令重启所有已停止的docker容器操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • 在docker中执行linux shell命令的操作

    这篇文章主要介绍了在docker中执行linux shell命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-30
  • docker容器与宿主机的数据交互方式总结

    这篇文章主要给大家介绍了关于docker容器与宿主机的数据交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-09
  • 安装Docker Desktop报错WSL 2 installation is incomplete的问题(解决报错)

    这篇文章主要介绍了安装Docker Desktop报错WSL 2 installation is incomplete的问题,解决方法很简单只需我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开,需要的朋友可以参考下...2021-06-13
  • 详解如何使用Docker部署Django+MySQL8开发环境

    这篇文章主要介绍了详解如何使用Docker部署Django+MySQL8开发环境,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-19
  • Docker部署Rancher的方法(无坑)

    这篇文章主要介绍了Docker部署Rancher的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-06
  • .NET 5 部署在docker上运行的方法

    这篇文章主要介绍了.NET 5 部署在docker上运行的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-06
  • Docker配置PHP开发环境教程

    现在很多开发者都使用Vagrant来管理他们的虚拟机开发环境,Vagrant确实很酷, 不过也有不少缺点(最主要的是它占用太多的资源)。在容器技术、Docker和更多类Docker技术出现后,解决这个问题就变得简单了。这篇文章主要介绍了Docker配置PHP开发环境,下面来一起看看吧。...2017-01-08
  • Shell脚本构建Docker 半自动化编译打包发布应用操作

    这篇文章主要介绍了Shell脚本构建Docker 半自动化编译打包发布应用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-30
  • docker cp 拷贝文件 和 进入容器的操作

    这篇文章主要介绍了docker cp 拷贝文件 和 进入容器的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-25