docker容器数据卷(相当于持久化)
时间:2019-08-06
本文章向大家介绍docker容器数据卷(相当于持久化),主要包括docker容器数据卷(相当于持久化)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Docker简介
#是什么: 类似redis的RDB和AOF,(更通俗的说相当于移动硬盘) #能干什么 1、容器的持久化 2、容器间继承+持久化 #怎么用 1、直接命令添加(-v) #docker run -v 宿主机目录:容器目录 镜像名 (docker run -it 镜像名, 对比这个记忆) 例: docker run -it -v /myVolume:/containVolume centos 1.1给容器设置只读权限(主机可以修改,容器只读) docker run -v 宿主机目录:容器目录:ro 镜像名 read-only docker run -it -v /myVolume:/containVolume:ro centos 2、DockerFile添加
二、使用
1、命令添加
[root@linuxxx ~]# docker run -it -v /myVolume:/containVolume centos #可以自动新建目录 #执行完这句话后,已经产生了绑定关系, 可以使用docker inspect ID查看 Volumes或hostconfig 分别在容器和host端进入相应的文件 [root@linuxxx /]# cd myVolume/ #原生Linux端,主机 [root@linuxxx myVolume]# cat b.txt a123qwer [root@f3c17a0046ed /]# cd containVolume/ #容器端 [root@f3c17a0046ed containVolume]# vi b.txt #结论:无论是主机还是容器创建文件也好,修改文件也好,都能共享资源 -------------------------------------- #当容器退出后,重新连接之前的这段时间,主机的修改,是否对容器有效 [root@c23bbbea6835 /]# exit exit #来到主机, [root@linuxxx myVolume]# touch c.txt [root@linuxxx myVolume]# vi c.txt #添加123 #来到容器,并重新登陆 [root@linuxxx ~]# docker ps -l #拿到ID, [root@linuxxx ~]# [root@linuxxx ~]# docker start f3c17a0046ed #运行容器 f3c17a0046ed [root@linuxxx ~]# docker attach f3c17a0046ed #进入容器 [root@f3c17a0046ed /]# [root@f3c17a0046ed /]# cd containVolume/ #进入绑定的文件 [root@f3c17a0046ed containVolume]# [root@f3c17a0046ed containVolume]# ll total 8 -rw-r--r--. 1 root root 9 Aug 6 11:40 b.txt -rw-r--r--. 1 root root 4 Aug 6 11:50 c.txt [root@f3c17a0046ed containVolume]# cat c.txt 123 结论:容器推出后,仍然与主机资源共享
2、DockerFile添加
#上面的命令添加模式,只支持宿主机与容器数据的共享 #由于宿主机目录依赖特定的宿主机,不能保证所有的宿主机都存在特定的目录 用法: 1、根目录下创建mydocker文件夹并进入 2、可在Dockerfile中使用 VOLUME 指令来给镜像添加一个或多个数据卷 3、build后生成镜像, 4、run 容器
[root@linuxxx ~]# mkdir /mydocker #创建文件夹 [root@linuxxx ~]# cd /mydocker/ #进入文件夹 [root@linuxxx mydocker]# vi Dockerfile #编写 --------------------------------------------------- #valume test #编写内容 FROM centos VOLUME ["/datavolume1","/datavolume2","/datavolume3",] CMD echo "finished,--------sucess1" CMD /bin/bash ------------------------------------------------------- #绑定 [root@linuxxx mydocker]# docker build -f /mydocker/Dockerfile -t pdun/centos . [root@linuxxx mydocker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE pdun/centos latest 751b5f9475e5 3 minutes ago 202MB [root@linuxxx mydocker]# docker run -it pdun/centos #可以查看是否成功创建这两个容器 [root@3c1a4034ed22 /]# ll drwxr-xr-x. 2 root root 6 Aug 6 14:02 datavolume1 drwxr-xr-x. 2 root root 6 Aug 6 14:02 datavolume2 #进入容器,创建文件 [root@3c1a4034ed22 /]# cd /datavolume1 [root@3c1a4034ed22 datavolume1]# pwd /datavolume1 [root@3c1a4034ed22 datavolume1]# touch contioner01.txt ------------------------------------------------------------------------ 我们没有创建主机,主机从何而来 让我们打开一个新的终端 [root@linuxxx ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c1a4034ed22 pdun/centos "/bin/sh -c /bin/bash" 8 minutes ago Up 8 minutes angry_aryabhata c44b284600fd redis "docker-entrypoint.s…" 5 hours ago Up 5 hours 6379/tcp vibrant_spence [root@linuxxx ~]# [root@linuxxx ~]# docker inspect 3c1a4034ed22
原文地址:https://www.cnblogs.com/pdun/p/11312243.html
- HDU 2438 Turn the corner(三分查找)
- UVAlive 3708 Graveyard(最优化问题)
- HDU 1754 I Hate It(线段树之单点更新,区间最值)
- Selenium2+python自动化19-单选和复选框
- Uva 11300 Spreading the Wealth(递推,中位数)
- Uva 11729 Commando War (简单贪心)
- UVA 11292 Dragon of Loowater(简单贪心)
- Codeforces Beta Round #2 A,B,C
- 牛顿迭代法(Newton's Method)
- 最长递减子序列(nlogn)(个人模版)
- Selenium2+python自动化26-js处理内嵌div滚动条
- Selenium2+python自动化25-js处理日历控件
- 转负二进制(个人模版)
- Selenium2+python自动化24-js处理富文本
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android中使用GridView实现仿微信图片上传功能(附源代码)
- Android下载进度监听和通知的处理详解
- Android上传多张图片的实例代码(RxJava异步分发)
- Android仿微信语音消息的录制和播放功能
- Android如何自定义升级对话框示例详解
- Android Tiny集成图片压缩框架的使用
- 11个JavaScript代码重构最佳实践
- Android编程实现类似天气预报图文字幕垂直滚动效果的方法
- Android 中 Tweened animation的实例详解
- Android 媒体开发之MediaPlayer状态机接口方法实例解析
- Android读取资源文件的方法
- Android 基于IntentService的文件下载的示例代码
- Android开发之底图局部加载移动的方法示例
- Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题
- ExpandableListView实现手风琴效果