当前位置:   article > 正文

Docker 文件挂载与卷挂载(volume)_挂载卷

挂载卷

卷挂载

在这里插入图片描述

  • volumes(卷挂载) :存储在主机文件系统的一部分中,该文件系统由Docker管理 (在Linux上是“ /var/lib/docker/volumes /”)。 非Docker进程不应修改文件系统的这一部分。 卷是在Docker中持久存储数据的最佳方法。

    docker自动在外部创建文件夹自动挂载容器内部指定的文件夹内容(Dockerfile VOLUME指令的作用)

  • Bind mounts(绑定挂载) 可以在任何地方 存储在主机系统上。 它们甚至可能是重要的系统文件或目录。 Docker主机或Docker容器上的非Docker进程可以随时对其进行修改。

    自己在外部创建文件夹,手动挂载

  • tmpfs mounts(临时挂载) 仅存储在主机系统的内存中,并且永远不会写入主机系统的文件系统

    可以把数据挂载到内存中

volume(卷)

卷挂载命令:

docker run xxx -v 宿主机:容器里的目录

-v 宿主机绝对路径:Docker容器内部绝对路径:叫挂载;这个有空挂载问题
-v 不以斜杆(/)开头的路径:Docker容器内部绝对路径:叫绑定(docker会自动管理,docker不会把他当成目录,而把它当成卷)

  • 匿名卷使用示例:

    #docker将创建出匿名卷,并保存容器/etc/nginx下面的内容
    docker run -dP -v /etc/nginx nginx(宿主机啥也不写,直接写容器 内的目录)

  • 具名卷使用示例

    #docker将创建出名为nginx的卷,并保存容器/etc/nginx下面的内容
    docker run -dP -v nginx:/etc/nginx nginx

demo示例:
  • -v /root/html:/usr/share/nginx/html 效果:访问forbidden
  • -v html:/usr/share/nginx/html:ro 效果:访问默认欢迎页
  • -v /usr/share/nginx/html 效果:匿名卷 (什么都不写也不要加冒号,直接写容器内的目录)
# -v不以绝对路径方式;
### 1、先在docker底层创建一个你指定名字的卷(具名卷) html
### 2、把这个卷和容器内部目录绑定
### 3、容器启动以后,目录里面的内容就在卷里面存着

#####-v nginxhtml:/usr/share/nginx/html 也可以以下操作
## 1、 docker create volume nginxhtml 如果给卷里面就行修改,容器内部的也就改
了。
## 2、 docker volume inspect nginxhtml
## 3、docker run -d -P -v nginxhtml:/usr/share/nginx/html --name=nginx777 nginx
# 可以看到
	"Mounts": [
     {
        "Type": "volume", //这是个卷
        "Name": "html",  //名字是html
        "Source": "/var/lib/docker/volumes/html/_data",  //宿主机的目录。容器里面的哪两个文件都在
        "Destination": "/usr/share/nginx/html",  //容器内部
        "Driver": "local",
        "Mode": "z",
        "RW": true,  //读写模式
        "Propagation": ""
     }
   ]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

#卷:就是为了保存数据
docker volume  #可以对docker自己管理的卷目录进行操作;
/var/lib/docker/volumes(卷的根目录)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

卷管理

docker volume create xxx:创建卷名
docker volume inspect xxx:查询卷详情
docker volume ls: 列出所有卷
docker volume prune: 移除无用卷

查看卷在哪

  1. 先列出哪些卷

    docker volume ls

  2. 查看卷在宿主机哪

    docker volume inspect xxx

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号