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

 更新时间:2021年12月28日 11:27:53   作者:我是坑货  
Docker的挂载是将容器内的目录和宿主机的目录进行绑定,本文主要介绍了Docker匿名挂载和具名挂载的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

数据卷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匿名挂载和具名挂载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker windows10 共享目录挂载失败的解决方案

    docker windows10 共享目录挂载失败的解决方案

    这篇文章主要介绍了docker windows10 共享目录挂载失败的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 基于docker部署skywalking实现全链路监控功能

    基于docker部署skywalking实现全链路监控功能

    这篇文章主要介绍了基于docker部署skywalking实现全链路监控,skywalking提供了在很多不同的场景下用于观察和监控分布式系统的方式,文中给大家介绍如何快速部署skywalking全链路监控,感兴趣的朋友一起看看吧
    2022-03-03
  • 如何使用docker搭建ELK分布式日志同步方案

    如何使用docker搭建ELK分布式日志同步方案

    ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案,ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • Docker如何挂载mysql

    Docker如何挂载mysql

    这篇文章主要介绍了Docker如何挂载mysql问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • docker启动Nginx的两种方式小结

    docker启动Nginx的两种方式小结

    本文介绍了两种获取Nginx镜像的方式:直接从DockerHub拉取和通过Dockerfile构建,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 解决Docker必须使用sudo操作的问题

    解决Docker必须使用sudo操作的问题

    这篇文章主要介绍了解决Docker必须使用sudo操作的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker Overlay目录占用的磁盘空间过大问题

    docker Overlay目录占用的磁盘空间过大问题

    这篇文章主要介绍了docker Overlay目录占用的磁盘空间过大问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 删除docker中没有被使用的数据卷volume

    删除docker中没有被使用的数据卷volume

    发现docker占用宿主机的磁盘空间很大,这个时候如何来释放这些数据卷占用的空间呢,通过执行相关命令即可顺利解决,下面小编给大家介绍下删除docker中没有被使用的数据卷volume,感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • Docker Desktop Vmmem内存占用过高问题及完美解决方案

    Docker Desktop Vmmem内存占用过高问题及完美解决方案

    DockerDesktopVmmem内存占用过高问题常见于其基于WSL运行类似虚拟机的机制,通过编辑.wslconfig文件限制WSL资源,可有效降低内存占用,具体操作包括创建.wslconfig文件,调整内存配置,并重启Docker Desktop,需注意内存设置不宜过小,以免影响Docker运行和容器稳定性
    2024-09-09
  • Docker 部署 pSQL 服务器的详细教程

    Docker 部署 pSQL 服务器的详细教程

    本文详细介绍了如何使用Edu邮箱申请Azure订阅并开通免费VPS,以及在Ubuntu VPS上通过Docker部署pSQL服务器的方法,感兴趣的朋友跟随小编一起看看吧
    2025-02-02

最新评论