Docker容器卷
2021/10/27 23:13:49
本文主要是介绍Docker容器卷,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据卷可以将主机上的目录/文件映射到容器内,并具有以下一些特性:
- 数据卷可以在容器之间共享,方便容器之间共享数据
- 主机/容器内的操作文件,可以立即在容器/主机上看到相应的变化
- 数据卷与容器相互独立,解耦
创建数据卷
$ docker volume create -d local test # 查看数据卷详细信息 $ docker volume inspect test [ { "CreatedAt": "2021-10-27T22:23:43+08:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/test/_data", "Name": "test", "Options": {}, "Scope": "local" } ]
可以看到,test创建在主机的 /var/lib/docker/volumes/test/_data
目录
使用数据卷
# 创建容器时,docker create 和 docker run 都可以使用 -v 参数 # 使用具有名字的容器卷挂载到容器中 $ docker run -it --name ubuntu-1 -v test:/test ubuntu:18.04 # 使用指定目录挂载到容器中 $ docker run -it --name ubuntu-1 -v /test:/test ubuntu:18.04
挂载的的数据卷,在容器中的默认权限是读写,可以通过 ro
指定为只读:
$ docker docker run -it --name ubuntu-1 -v test:/test:ro ubuntu:18.04
加了 ro
之后,容器内就无法修改容器卷的文件了
数据卷容器
如果需要在多个容器挂载共享多个数据卷,可以使用数据卷容器,数据卷容器的原理是这样的:
- 创建一个容器,用作数据卷容器,名为 data-container
- 将多个数据卷挂载到 data-container 上
- 创建业务容器 container-1,使用作数据卷容器 data-container 挂载的数据卷
- 创建业务容器 container-2,使用作数据卷容器 data-container 挂载的数据卷
- ...
这样,相当于多个业务容器的数据卷配置,都来自于数据卷容器 data-container,仅需要配置一处
# 创建数据卷容器 $ docker create -v folder1:/folder1 -v folder2:/folder2 --name data-container ubuntu:18.04 # 创建业务容器1,使用数据卷容器 $ docker run -it --name container-1 --volumes-from data-container ubuntu:18.04 # 创建业务容器2,使用数据卷容器 $ docker run -it --name container-2 --volumes-from data-container ubuntu:18.04
使用数据卷容器,不需要数据卷容器在启动状态
这篇关于Docker容器卷的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享
- 2024-11-04Docker环境部署项目实战:新手入门教程
- 2024-11-04Docker环境部署资料:新手入门教程
- 2024-11-01Docker环境部署教程:新手入门指南
- 2024-11-01超越Docker:苹果芯片上的模拟、编排和虚拟化方案讲解
- 2024-11-01Docker环境部署:新手入门教程