赞
踩
volumes(卷挂载) :存储在主机文件系统的一部分中,该文件系统由Docker管理 (在Linux上是“ /var/lib/docker/volumes /”)。 非Docker进程不应修改文件系统的这一部分。 卷是在Docker中持久存储数据的最佳方法。
docker自动在外部创建文件夹自动挂载容器内部指定的文件夹内容(Dockerfile VOLUME指令的作用)
Bind mounts(绑定挂载) 可以在任何地方 存储在主机系统上。 它们甚至可能是重要的系统文件或目录。 Docker主机或Docker容器上的非Docker进程可以随时对其进行修改。
自己在外部创建文件夹,手动挂载
tmpfs mounts(临时挂载) 仅存储在主机系统的内存中,并且永远不会写入主机系统的文件系统
可以把数据挂载到内存中
卷挂载命令:
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
# -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: 移除无用卷
先列出哪些卷
docker volume ls
查看卷在宿主机哪
docker volume inspect xxx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。