#### 命令挂载

语法:docker run –it –v /宿主机绝对路径目录:/容器内目录\[:权限\] 镜像名或镜像ID

![](https://img.kancloud.cn/de/11/de11ac1afa4ad4a86bf53a9be2047776_804x45.png)

可通过docker inspect 镜像名称或镜像ID查看镜像的详细信息

![](https://img.kancloud.cn/98/d8/98d89ec6ee3abf617d53c379f1f2915d_663x193.png)

容器和宿主机之间可以进行数据的共享

![](https://img.kancloud.cn/47/8e/478ef5c3a696c7da478bdf6587c7ae79_731x81.png)

比如说将上面的内容写入到/hostDataVolume中以后,我们在容器内也可以看到该文件

![](https://img.kancloud.cn/fc/f8/fcf8aab63e4e7d58340e7cd0d13ea67d_774x120.png)

此时我们查看容器内的/dataVolumeContainer目录,发现存在一个hostText的文件,并且文件内容是我上面通过重定向>写入的。

![](https://img.kancloud.cn/e8/ab/e8ab7550f6e69e0e1d8a395dd1142e8d_897x181.png)

我们在容器内向hostText文件追加了一个文本内容,此时通过宿主机查看hostText文件,发现也能看到该文本内容。(因为服务器不支持中文的原因,造成的部分字符乱码)

![](https://img.kancloud.cn/99/e7/99e748b61387519968bf2f14d3bd6b13_518x85.png)

此时说明**通过数据卷,可以实现宿主机和容器间的数据保存**

当容器停止退出后,如果宿主机的卷挂载目录文件有变动,重新启动容器后,容器内的卷挂载目录会和宿主机卷挂载目录的文件内容自动同步。

##### 带权限的挂载

![](https://img.kancloud.cn/07/e7/07e79cac2a2bfecbf97878381abcf317_758x44.png)

ro:Read-Only,中文意思就是只读

rw:Read,Write,可读可写

![](https://img.kancloud.cn/5b/b6/5bb6b7a93d8f4396ad75e76ee6183cea_385x194.png)

此时容器内**只能进行读操作,不能进行修改和写入**

![](https://img.kancloud.cn/41/95/4195b221cb05761b8b331ef6153cd03c_662x60.png)

##### 解决方案:Docker挂载主机目录Docker访问出现cannot open directory:Permission denied(未验证)

在挂载目录后加一个—privileged=true参数

如:docker run –it –v /宿主机目录绝对路径:/容器目录绝对路径 **–privileged=true** 镜像ID或镜像名称

#### Dockerfile添加数据卷

1. 根目录下新建docker文件夹并进入

![](https://img.kancloud.cn/2b/9d/2b9d74ae0019bddb7313f707a24ee548_354x30.png)

1. 在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷

语法:

VOLUME\[“/dataVolumeContainer1”,”/dataVolumeContainer3”,”/dataVolumeContainer3”\]

说明:

出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现。

由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。

1. Dockerfile构建

\[root@izikh2x5epj8p6z docker\]# vi Dockerfile

\# 数据卷测试

\# 来自于哪个镜像

FROM centos

\# 数据卷名称1,数据卷名称2,...

VOLUME \["/dataVolumeContainer1","/dataVolumeContainer2"\]

\# 输出回显信息

CMD echo "finished,------>success"

\# 相当于 docker run -it -v /宿主机目录1:/dataVolumeContainer1 -v /宿主机目录2:/dataVolumeContainer2 centos /bin/bash

CMD /bin/bash

1. docker build构建Dockerfile文件,生成新镜像

语法:docker build –f Dockerfile文件位置 –t 新镜像名称 新镜像生成位置

![](https://img.kancloud.cn/4d/38/4d3834d3a53ed9954b48e42c8400837c_886x373.png)

通过docker images查询本地镜像信息,发现多了一个我们生成的gotojava/centos的镜像

![](https://img.kancloud.cn/c1/70/c17005892d62d0bbad47096ee36461f3_796x122.png)

1. Run我们已经生成的镜像

![](https://img.kancloud.cn/bb/25/bb25565e63a3787ed38f03f832e4606c_568x40.png)

查看镜像根目录,发现有两个数据卷1和数据卷2

![](https://img.kancloud.cn/7c/e0/7ce06c988c95c059639af0fe7302c0ef_819x85.png)

1. 查看数据源对应的主机位置

可以使用docker inspect 容器ID或容器名称查看容器中的数据卷和宿主机上对应的目录位置

![](https://img.kancloud.cn/68/1a/681a16c29b9bd9222736c94539b4184f_1096x415.png)

CentOS7下的默认地址为:

/var/lib/docker/volumes/bf72aebc25e62d53e54121d162085a663e78ffc9e188d58ee567c4f5edf7dc4f/\_data

docker可道云怎么挂载移动硬盘_数据卷的挂载相关推荐

  1. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)

    基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...

  2. docker数据卷容器挂载不上

    docker容器之间可以通过相互挂载实现数据共享,被挂载的容器称为 "数据卷容器" 数据卷容器相互挂载前提需要数据卷容器一方通过数据卷挂载在宿主机 docker run -d -v ...

  3. docker常用命令 | game2048网页游戏 | nginx镜像 | 数据卷管理 | docker网络管理 | 构建apache镜像 | Dockerfile常用的命令

    DOCKER https://www.docker.com http://www.runoob.com/docker/docker-command-manual.html docker命令大全 镜像用 ...

  4. 数据卷mysql挂载

    数据卷mysql挂载 下载mysql5.7镜像 docker pull mysql:5.7 运行镜像 //-d 后台运行//-p 端口映射//-v 卷挂载//-e 环境配置//--name 容器名do ...

  5. docker可道云怎么挂载移动硬盘_【手把手教学】教你使用docker优化斐讯N1可道云...

    现在很多斐讯N1盒子用户都反响使用docker安装可道云之后使用起来响应效果不佳,上传速度太慢,但是怎么才能解决这种问题发生呢?今天我来教给大家优化可道云的方法(安装大部分都在终端进行,如果你也是安装 ...

  6. docker可道云怎么挂载移动硬盘_N1 docker手把手教学安装优化可道云

    本帖最后由 你个呆瓜 于 2021-1-31 23:45 编辑 docker安装可道云我之前的帖也说过了,但是整体用下来响应速度不佳,最最最最重要的一点是--上传速度太慢了,局域网也只有2-3M/S, ...

  7. docker可道云怎么挂载移动硬盘_N1盒子docker下部署可道云kodbox并扩展redis、mariadb...

    本帖最后由 dear521520 于 2020-5-12 10:52 编辑 第一次发帖,不足之处请见谅. 因为多个盒子来回瞎折腾,所以服务一般我都搭建在docker中,方便迁移.其实有人发布过可道云d ...

  8. Docker学习:容器间数据挂载与共享 | 远程共享挂载数据卷 | sshfs挂载远程volume | 容器内部通过sshfs访问远程主机 | -v |--volumes-from(实战篇)

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,主要介绍宿主.容器间数据共享,它的好处自然不言而喻,Tomcat集群就是这么玩儿的(多个tomcat服务,对应一套web应用). 核心原 ...

  9. docker 删除所有未启动的容器_Docker数据卷容器及DockerFile

    一:介绍 什么是容器数据卷? 我们都知道,容器中是有数据的,如果我们将容器删除,数据就会丢失,就好比我们的MySQL服务容器,我们把容器删了,数据就没了,删库跑路都不用 rm -rf /* 命令的,所 ...

最新文章

  1. 倒计时1天,2018 AI开发者报名通道即将关闭(附参会提醒)
  2. 2021宁夏高考成绩查询电话,2021宁夏高考成绩什么时候几点可以查
  3. c++ 嵌套类 内部类
  4. java将某个数按比例分配应用题,按比例分配应用题
  5. android getresponsecode -1,getHttpResponseCode()在android 2.2中返回-1
  6. Django模型修改及数据迁移
  7. ui li 菜单 点击添加下级_如何制作导航栏中的下拉菜单
  8. 解决Ubuntu系统“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”的有效方法
  9. 【DFS】LeetCode 52. N-Queens II
  10. 《货币简史》书中的精髓:货币产生的起源是什么?货币又是如何发展起来的?
  11. 正项级数收敛性的判别法
  12. http://gm100861.blog.51cto.com/1930562/954333
  13. 【年终总结】2017年下半年年终总结——试着将一切归零,整装再出发
  14. 安卓实现下拉刷新上拉加载
  15. 输入姓名并分别输出姓和名
  16. 机器学习--sklearn之决策树(分类+回归)
  17. 微信公众号推广技巧之一
  18. C语言学习之路——程序设计概述
  19. 手机联系人不见了怎么恢复,试下这2招
  20. java从入门到精通API02

热门文章

  1. 戴尔台式计算机怎么拆卸两块侧板,开箱 篇一:拆戴尔3681 SFF 10代小主机
  2. c语言1076 wifi密码(15分),1076 Wifi密码 (15 分)
  3. 【PHP自学笔记】变量的命名规则和变量作用域
  4. Canvas绘制圆滑曲线
  5. Jony Ive升任苹果首席设计官,该职位首次设立
  6. 【solr】——全文检索实现原理
  7. FATFS 的几个函数使用方法
  8. 第十四届蓝桥杯(Web应用开发)模拟赛1期-大学组
  9. CAS客户端使用Ajax登陆(即保留原有客户端登录页面)
  10. VirtualBox+Vargant快速使用以及vagrant up下载centos慢解决办法