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系列之使用Docker Compose编排容器

    Docker系列之使用Docker Compose编排容器

    Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,这篇文章主要介绍了Docker系列之使用Docker Compose编排容器,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Docker实现分布式应用功能教程

    Docker实现分布式应用功能教程

    这篇文章主要介绍了Docker实现分布式应用功能,涉及docker分布式应用、负载均衡相关实现技巧与操作注意事项,需要的朋友可以参考下
    2018-06-06
  • Docker安装Nginx并部署及MySQL容器构建全过程

    Docker安装Nginx并部署及MySQL容器构建全过程

    众所周知Docker是一种容器化技术,可以用来快速部署和管理应用程序,这篇文章主要给大家介绍了关于Docker安装Nginx并部署及MySQL容器构建的相关资料,需要的朋友可以参考下
    2024-02-02
  • docker pull很慢如何解决

    docker pull很慢如何解决

    这篇文章主要介绍了docker pull很慢的解决方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 详细记一次Docker部署服务的爬坑历程

    详细记一次Docker部署服务的爬坑历程

    这篇文章主要介绍了详细记一次Docker部署服务的爬坑历程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 聊聊使用docker安装nginx提供web服务的问题

    聊聊使用docker安装nginx提供web服务的问题

    这篇文章主要介绍了使用docker安装nginx提供web服务,docker pull nginx命令用于拉取最新版本的nginx镜像,需要的朋友可以参考下
    2022-04-04
  • 更改Docker默认数据目录解决部署空间不足问题

    更改Docker默认数据目录解决部署空间不足问题

    随着使用 Docker 的时间增加,存储在默认数据目录(通常是 /var/lib/docker)中的数据量也会不断增大,最终可能导致服务器上的存储空间不足,这篇文章将详细介绍如何更改 Docker 的默认数据目录,以便在服务器上释放存储空间并优化资源利用,需要的朋友可以参考下
    2024-06-06
  • 使用Docker镜像构建Go应用的实现方法

    使用Docker镜像构建Go应用的实现方法

    本文主要介绍了使用Docker镜像构建Go应用的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • VS上配置docker步骤记录

    VS上配置docker步骤记录

    这篇文章主要介绍了VS上配置docker步骤记录,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • windows宿主机和docker容器设置挂载共享文件夹的步骤

    windows宿主机和docker容器设置挂载共享文件夹的步骤

    这篇文章主要介绍了windows宿主机和docker容器设置挂载共享文件夹的步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论