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": ""
     }
   ]


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



卷管理

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

查看卷在哪

  1. 先列出哪些卷

    docker volume ls

  2. 查看卷在宿主机哪

    docker volume inspect xxx

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值