Docker 挂载
简介
集群当中挂载数据卷的方式采用--mount标志。而且-mount标记相比于-v意图更明确.
如果不进行数据挂载的话,当容器不在时,对应的数据也不会持久存在
存储方式
- 卷存储,由docker管理使用docker -volume create创建管理。卷也是docker官方推荐的持久化方式
- 绑定挂载,就是把宿主机的地址挂载到容器内
- tmpfs挂载只存储在主机系统的内存当中。(用到的比较少)
绑定目录
采用-v的方式挂载容器。该文件或目录不需要在Docker主机上已经存在,如果尚不存在,则按需创建
- 采用-v的形式宿主机的文件会覆盖data里面的文件。
- 如果宿主机目录为空的话,容器内挂载文件会清空
docker run -tid -v /etc/docker/redis/data:data --name redis redis
1.自动创建目录
# 该路径现在不存在,run之后自动生成
docker run -tid --name nginx -v /root/data/nginxtest:/etc/nignx/ nginx

图中可见,在运行时会自动创建宿主机目录,但是内容为空,并且容器也无法启动,会报错:未找到nginx.conf 也就是说**在映射的时候,宿主机没有nginx.conf**文件.所以导致nginx无法启动
2.自动创建文件
这里会看到直接报错。

3.宿主机已存在文件挂载
正常挂载

4.挂载已存在目录
正常挂载

总结
1.挂载空目录容器内的信息会被覆盖.
2.挂载目录时会自动创建目录,但是文件不会创建
3.如果需要挂载目录,需要先把需要挂载的内容cp到宿主机,然后执行挂载
创建数据卷
数据卷项目绑定d目录有如下优点:
- 更容易迁移和备份
- 可以使用docker cli命令管理卷
- 卷在liunx和windows 都可以使用
- 可在多个容器之间共享数据卷
# 创建数据卷
docker volume create my-data
# 查看信息
docker volume inspect my-data
# 查看所有卷信息
docker volume ls
# 删除卷
docker volume rm my-data
挂载数据卷
首先需要创建数据卷,当然也可以在创建service的时候,指定数据卷名称,会自动创建一个数据卷,集群中的数据卷都是采用--mount参数进行挂载。
type为bind的时候,挂载的是主机路径,必须引用主机上现有的路径,并且不会自动创建该路径,如果路径不存在,服务创建失败
type为volume的时候挂载的是数据卷。
# 挂载数据卷
docker service create --mount type=volume,src=redisdata,dst=/data --name redis redis
# 挂载目录
docker service create --mount type=bind,src=/data,dst=/data --name redis redis
Docker 挂载的更多相关文章
- Docker挂载主机目录Docker访问出现Permission denied的解决办法
Docker挂载主机目录,访问相应的文件出现Premission denied的权限访问问题, [root@localhost soft]# docker images REPOSITORY ...
- docker挂载本地目录和数据卷容器
1.docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里. 交互模式运行docker run -it -v /home/dock/Downloads:/usr/Downloa ...
- docker挂载volume的用户权限问题,理解docker容器的uid
docker挂载volume的用户权限问题,理解docker容器的uid 在刚开始使用docker volume挂载数据卷的时候,经常出现没有权限的问题. 这里通过遇到的问题来理解docker容器用户 ...
- docker挂载本地目录的方法总结
docker挂载本地目录的方法总结: Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录, ...
- win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据(使用外部redis)
目录 话题 (191) 笔记 (137) 资料区 (2) 评价 (33) 介绍 讨论区 话题 win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据( ...
- docker 挂载目录挂载不上**
最近做项目做一个shared Dynamodb, 使用docker挂载一个image,发现怎么都挂载不上, 使用 $ pwd E:\Work\Aws\git\schema\dynamodb\local ...
- docker挂载数据卷
1.Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷,简单的理解就是将数据持久化的工具. 2.在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们 ...
- docker挂载NVIDIA显卡运行pytorch
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 写在前面: 请参考之前的文章安装好CentOS.NVIDIA相关驱动及软件.docker及 ...
- 【原创】大叔经验分享(32)docker挂载文件修改生效
docker经常需要挂载文件到容器中,比如启动nginx # docker run -d --name test_nginx -v /tmp/nginx.conf:/etc/nginx/nginx.c ...
- win7 docker 挂载共享目录
在 win7 下用 docker 不像 win10 那样方便,安装包都不一样. 在 win7 下共享一个目录的方法如下: 1. 先设置 win7 到 VirtualBox 中 docker 用的那个虚 ...
随机推荐
- 解密TaurusDB存储端高并发之线程池
摘要:为了能加快相关任务的高效执行,TaurusDB采用多线程技术处理的方式,增加处理器单元的吞吐能力,从而提高存储端的执行效率. 1. TaurusDB背景 随着云计算进入2.0时代,数据急剧膨胀, ...
- Python必须知道的异常处理
异常处理 把可能会发生的错误,提前在代码里进行捕捉(监测) try : code except Exception: 出错后要执行的代码 下面是常见的异常: attributeError 试图访问一个 ...
- JavaScript图形实例:SierPinski三角形
1.SierPinski三角形 Sierpinski三角形是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集.其生成过程为: (1)取一个三角形(多数使用等边三角形): (2) ...
- 基础设计模式-03 从过滤器(Filter)校验链学习职责链模式
1.职责链路模式 1.1UML图 1.2 职责链路模式的概念 为了避免处理对象的耦合关系,将对象连成一个链,沿着这个链进行访问,直到有一个对象处理位置: 1.3 优点 1.按照一定的顺序执行判断: 2 ...
- tyvj 1198 矩阵连乘——区间dp
tyvj 1198 矩阵连乘 题目描述 一个n*m矩阵由n行m列共n*m个数排列而成.两个矩阵A和B可以相乘当且仅当A的列数等于B的行数.一个N*M的矩阵乘以一个M*P的矩阵等于一个N*P的矩阵,运算 ...
- 读CSAPP第二章的收获
一:一道很有意思的位运算题目:你只有两种操作 bis(x, y): 在y为1的每个位置上,将x的对应的位设为1bic(x, y): 在y为1的每个位置上,将x的对应的位设为0 简单的化简一下bis(x ...
- display:inline-block 什么时候不会显示间隙?
移除空格 使用margin负值 使用font-size:0 letter-spacing word-spacing
- DVWA学习记录 PartⅥ
Insecure CAPTCHA 1. 题目 Insecure CAPTCHA(全自动区分计算机和人类的图灵测试),意思是不安全的验证码. 指在进行验证的过程中,出现了逻辑漏洞,导致验证码没有发挥其应 ...
- python PEP8开发规范
为了使得代码更美观,方便阅读,建议遵循下PEP8规范 每行长度最大不要超过79. 换行可以使用反斜杠,换行点要在操作符的后面敲回车. 类个top-level函数定义之间空两行:类中的方法定义之间空一行 ...
- 使用eval将字符串转化成字典时报name 'null' is not defined错误解决办法
在接口测试过程中,为了取值将形如字典形式的字符串使用eval()方法转化成字典方便取值 str={"code":100,"num":1,"data&q ...