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

目录
  • 数据卷volume
  • 匿名挂载和具名挂载
  • 数据卷的位置

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

(0)

相关推荐

  • docker容器数据卷之具名挂载和匿名挂载问题

    目录 什么是容器数据卷 为什么需要容器数据卷 使用 如何查看是否使用了数据卷 具名挂载和匿名挂载 指定路径挂载 具名挂载 匿名挂载 容器与容器之间的数据共享 --volumes-from 什么是容器数据卷 容器数据卷就是目录的挂载,将我们的容器的目录挂载到宿主机上,从而实现打通宿主机和容器之间的文件共享功能: 为什么需要容器数据卷 docker理念就是将应用和环境打包成一个镜像:但是数据怎么办呢?且不说数据库,一个项目在运行过程种肯定会产生大量的日志,这些日志对开发人员来说是非常重要的, 因为有

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

    目录 数据卷volume 匿名挂载和具名挂载 数据卷的位置 数据卷volume 提到这个匿名挂在和具名挂载,其实要先普及一个知识,就是什么是volumes,这个volumes就是数据卷的意思.我们docker挂载会用到这个卷. 数据卷的用处就是一个可供一个或者多个容器使用的特殊目录,他绕过UFS就是什么联合文件系统,提供了很多功能: (1)数据卷可以多个容器共享或者重用 (2)对数据卷修改会立马生效 (3)对数据卷的更新不会影响镜像 (4)数据卷默认会一直存在,即使容器被删除了(结合2,3点特别

  • docker的具名挂载与匿名挂载实现

    大家好,今天我们分享一下docker 的具名挂载与匿名挂载 以这条命令举例 [root@localhost ~]# docker run -d -P --name nginx02 -v /etc/nginx/ nginx d8e9b9084cf884e7e0d11c560c3f50d94f2d4a2d9c77fccb3f52b5cfd8e55392 [root@localhost ~]# 这里我们就没有给它指定端口: 它对应的外网端口是随即的 查看一下正在运行的容器: [root@localho

  • Docker搭建Redis5.0并挂载数据

    目录 一.简单挂载持久化数据 二.通过DockerFile构建镜像,指定配置文件启动 记录 Docker 搭建 Redis5.0 并挂载数据过程,搭建参考自 Docker Hub 一.简单挂载持久化数据 docker run -d -p 6379:6379 --name redis \ -v /itwxe/dockerData/redis/data:/data \ redis:5.0.8 redis-server --appendonly yes 这样仅仅是挂载了数据,Redis 没有密码等配置

  • Vue中的匿名插槽与具名插槽详解

    目录 1.匿名插槽 2.具名插槽 总结 slot又名插槽,是Vue的内容分发机制,组件内部的模板引擎使用slot元素作为承载分发内容的出口. 插槽slot是子组件的一个模板标签元素,而这一个标签元素是否显示,以及怎么显示是由父组件决定的. slot又分三类,默认插槽,具名插槽和作用域插槽.(这里说前两种) 插槽的实质是:插槽实质是对子组件的扩展,通过<slot>插槽-----向组件内部"指定位置"传递内容. 1.匿名插槽 默认插槽:又名匿名插槽,当slot没有指定name属

  • Docker中运行nginx并挂载本地目录到镜像中的方法

    1 从hup上pull镜像 docker pull nginx 2 创建将要挂载的目录 mkdir -p /data/nginx/{conf,conf.d,html,logs} 3 先要有配置文件才能启动容器 3.1 vim /data/conf/nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_co

  • Docker nginx安装与配置挂载的方法

    在Docker下载Nginx镜像 docker pull nginx docker images 创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,html,logs} 编写nginx,conf配置文件,并放在文件夹中 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Rus

  • Docker容器数据卷原理及使用方法解析

    什么是容器数据卷 如果数据都在容器中,一旦容器删除,数据就会丢失! eg : mysql容器删了,就是我们常说的删库跑路. 需求:数据可以持久化,即时删掉容器,我们的数据还在 容器直接可以有一个数据共享的技术!Docker容器产生的数据,同步到本地! 这就是卷技术!目录的挂载,将我们容器的目录挂载到linux上面! 总结:卷技术就是为了实现数据的持久化和同步操作,容器间也是可以数据共享的 使用数据卷 方式一:直接使用命令来挂载 -v # 命令 docker run -it -v 主机的目录:容器

  • Python开发加薪利器之Docker的使用实践

    1. Docker概述 Docker为什么火,因为十分的轻巧. Docker是基于Go语言开发的. 1.1 虚拟机技术VS容器化技术 虚拟机技术: 资源占用 多冗余步骤多 启动慢 容器化技术:容器化技术不是模拟一个完整的操作系统. 1.2 名词概念 镜像(image) docker镜像好比是一个模版,可以通过这个模版来创建容器服务,mysql镜像==>run==>mysql01容器(提供服务),通过这个镜像可以创建多个容器. 容器(container) docker利用容器技术,独立运行一个或

  • 详解挂载运行的docker容器中如何挂载文件系统

    前言 感觉最近很多人都在问docker相关的问题,关于怎么操作一个已经启动的docker容器的文件系统,首先我发现这非常困难,因为 mnt的命名空间. 为了登录进入一个已经启动的docker容器,我们需要这么做: 使用nsenter来在临时挂载点上挂载整个docker容器的文件系统. 创建一个特定目录的绑定挂载来当作卷来使用. 卸载临时挂载. 好吧,开始实践. 启动一个名为charlie的docker实例: $ docker run --name charlie -ti ubuntu bash

随机推荐