解析Docker与docker-compose中volume参数的使用
时间:2024-04-15 08:45:16 来源:网络cs 作者:康由 栏目:卖家故事 阅读:
目录
数据卷Volume的概念
数据挂载的实现方式
宿主机路径挂载在docker/docker-compose中的使用
卷标映射挂载在docker/docker-compose中的使用
A.匿名挂载
B.具名挂载
参考文献:
数据卷Volume的概念
在docker内有个“数据卷持久化”的概念,也就是我们常说的“数据挂载”。它的作用是,将宿主机上的数据与容器内的数据形成映射,实现数据的共享或者数据的保存;当删除容器的时候,在宿主机上仍然能够保留文件目录,这就是Volume,数据卷。
数据挂载的实现方式
docker实现数据挂载的方式本质上分为两种:
通过宿主机绝对路径挂载通过卷标映射挂载(又包括匿名挂载与具名挂载)
宿主机路径挂载在docker/docker-compose中的使用
使用方法:
# dockerdocker run -itd -v 宿主机路径:容器路径 --name 容器名 镜像# docker-compose.yamlservices: service_name: container_name: container_name image: image:tag restart: always volumes: - 宿主机路径:容器路径
引例如下:
卷标映射挂载在docker/docker-compose中的使用
当使用卷标的方式进行数据挂载的时候,容器数据具体存放在宿主机的什么路径其实并不直观,但是docker提供了方法查看数据卷的宿主机目录,具体查看的方法如下,后文会在引例中直观说明。
# 查看所有的数据卷sudo docker volume ls# 查看指定数据卷的详细信息 sudo docker volume inspect 数据卷名称
A.匿名挂载
使用方法:
# dockerdocker run -itd -v 容器路径 --name 容器名 镜像# docker-compose.yamlservices: service_name: container_name: container_name image: image:tag restart: always volumes: - 容器路径
引例:
这种情况下,我们可以看到,当我们通过docker volume ls查看卷标的时候,我们只能查看到其对应的“匿名”的数据卷。如下图所示,如果我们随便查看一个数据卷的详细信息(命令为docker volume inspect 数据卷),可以看出其挂载点实际是在/var/lib/docker/volumes/<uuid>/_data下面的,其中uuid是docker自动生成的,而/var/lib/docker是docker的默认路径。
B.具名挂载
使用方法:
# dockerdocker run -itd -v 数据卷名称:容器路径 --name 容器名 镜像# docker-compose.yamlservices: service_name: container_name: container_name image: image:tag restart: always volumes: - 数据卷名称:容器路径volumes: 数据卷名称:
引例:
这种情况下,我们可以看到,当我们通过docker volume ls查看卷标的时候,我们能查看到其对应的“具名”的数据卷。可以看出其挂载点实际是在/var/lib/docker/volumes/<数据卷名称>/_data下面的,/var/lib/docker是docker的默认路径。
别急,特别针对docker-compose,还有另一个现象要看,如下:
可以看到,当我们通过docker-compose启动容器时,数据卷的名称多了一个software的前缀,而这正是docker-compose.yaml的存放路径,同时其挂载点在/var/lib/docker/volumes/<yaml路径_数据卷名称>/_data下面的。特别的,如果docker-compose在根目录执行,则数据卷的名称的前缀会默认设置为default。
参考文献:
http://blog.csdn.net/qq_41929714/article/details/128627429http://blog.csdn.net/AV_woaijava/article/details/86685950http://blog.csdn.net/weixin_43431218/article/details/132341357本文链接:https://www.kjpai.cn/gushi/2024-04-15/158809.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!