将数据从宿主机到容器的三种方式:
1,volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)保存数据的最佳方式
2,bind mounts 将宿主机上的任意位置的文件或者目录挂在到容器 (--mount type=bind,src=源目录,dst=目标目录)
3,tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在任何位置,可以使用
tmpfs,同时避免写入容器可写层提高性能。=====================Volume================================
方式一:
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c9ba6a9cecc6        nginx               "nginx -g 'daemon of…"   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp   nginx01
root@bogon: ~ 14:23:51
$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        8 days ago          109MB
nginx               latest              881bd08c0b08        8 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: ~ 14:23:56
$ docker volume ls
DRIVER              VOLUME NAME
root@bogon: ~ 14:24:00
$ docker volume create nginx-volinx-vol
▽oot@bogon: ~ 14:24:14
$ docker volume ls
DRIVER              VOLUME NAME
local               nginx-vol
root@bogon: ~ 14:24:22
$ docker run -itd --name nginx02 -p 8081:80 -h nginx01 -v nginx-vol:/usr/share/nginx/html nginx
6e5a0cf4451cb71a78e41d7dcfd2a60181208d7b6ca6f4c05d16434dcc674ba7
root@bogon: ~ 14:25:05
$ docker volume inspect nginx-vol
[{"CreatedAt": "2019-03-13T14:25:04+08:00","Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/nginx-vol/_data","Name": "nginx-vol","Options": {},"Scope": "local"}
]
root@bogon: ~ 14:33:43
$ cd /var/lib/docker/volumes/nginx-vol/_data
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:33:48
$ ls
50x.html  index.html
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:33:49
$ vim index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:34:11
$ echo "aa" >index.html
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:35:42
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
6e5a0cf4451c        nginx               "nginx -g 'daemon of…"   10 minutes ago      Up 10 minutes       0.0.0.0:8081->80/tcp   nginx02
c9ba6a9cecc6        nginx               "nginx -g 'daemon of…"   2 hours ago         Up 2 hours          0.0.0.0:8080->80/tcp   nginx01
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:36:00
$ curl 127.0.0.1:8081
aa
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:36:02
$
方式二:
$ docker run -itd -p 8082:80 --mount src=nginx-vol2,dst=/usr/share/nginx/html --name nginx03 nginx
6254f743f799b52e82516767989e995d08601383188d0e4fbda07cbea3ca858f
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:38:47
$ docker volume inspect nginx-vol2
[{"CreatedAt": "2019-03-13T14:38:32+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/nginx-vol2/_data","Name": "nginx-vol2","Options": null,"Scope": "local"}
]
root@bogon: /var/lib/docker/volumes/nginx-vol/_data 14:38:53
$ 注意:
1,如果没指定卷,自动创建
2,建议使用--mount,比较通用=====================Bind Mounts================================root@bogon: /data/www 12:55:34
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@bogon: /data/www 12:55:36
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hctest/nginx        latest              881bd08c0b08        8 days ago          109MB
nginx               latest              881bd08c0b08        8 days ago          109MB
centos              7                   1e1148e4cc2c        3 months ago        202MB
java                8                   d23bdf5b1b1b        2 years ago         643MB
root@bogon: /data/www 12:55:39
$ mkdir /data/www -p
root@bogon: /data/www 12:55:49
$ cat /data/www/index.html
sadasdad
root@bogon: /data/www 12:57:17
$ docker run -itd --name nginx01 -p 8080:80 --mount type=bind,src=/data/www,dst=/usr/share/nginx/html nginx
c9ba6a9cecc6bb8b241a15841fe1889f56a9c92e315017eb6c68fb0ef0c5bff4
root@bogon: /data/www 12:57:32
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
c9ba6a9cecc6        nginx               "nginx -g 'daemon of…"   9 seconds ago       Up 8 seconds        0.0.0.0:8080->80/tcp   nginx01
root@bogon: /data/www 12:57:41
$ docker exec -it c9ba6a9cecc6  bash
root@c9ba6a9cecc6:/# cat /usr/share/nginx/html/index.html
sadasdad
root@c9ba6a9cecc6:/#
注意:
1,如果源文件目录没有存在(也就是src),不会自动创建,会抛出一个错误
2,如果挂载目标容器中为非空目录,则该目录源文件会被隐藏。volume
总结:
1,多个运行的容器之间共享数据,因为挂载点如果一样存储是一样的
2,当容器停止或者删除,该卷依然存在,数据不会丢失
3,多个容器可以同时挂载相同的卷
4,当明确删除卷时,卷才会被删除
5,将容器数据存储在远程主机上或者其他存储
6,将数据从一台docker主机迁移到另一台时,先停止容器,然后备份卷的目录(/var/lib/docker/volumes/)Bind Mounts
总结:
1,从主机共享配置文件到容器,默认情况下,挂载主机/etc/resolv.conf到每个容器,提供dns解析
2,在docker主机上开发环境和容器之间共享源代码,例如,可以将maven tag目录挂在到容器中,每次在docker主机上构建maven项目时,容器都可以访问构建的项目包
3,当docker主机的文件或者目录结构保证与容器所需的绑定挂在一致时区别:
volume 是docker的宿主机文件系统一部分,只有docker可以进行更改,其他进程不能修改
bind mounts 是挂载在宿主机文件系统的任意位置,除了docker所有进程都可以进行修改、

转载于:https://www.cnblogs.com/Carr/p/10524357.html

`docker数据持久化volume和bind mounts两种方式相关推荐

  1. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  2. docker学习笔记(四)docker数据持久化volume

    docker数据持久化 官网:https://docs.docker.com/storage/volumes/ docker中的容器是可以随时销毁的,容器中的数据会随着容器的消亡而消亡.然而很多容器都 ...

  3. spark中将数据输出到json文件的两种方式

    在学习spark时,我们经常遇到要将数据写进一个json文件中的案例.通常的案例就是,给我们一个普通文件,然后我们用sparkcore或者sparkSQL,遍历文件内容后,按照需求将再将遍历后得到的数 ...

  4. SparkSQL读取hive中的数据,行转列的两种方式【行转列专用函数,UDAF】

    先给数据: vi employees 1,George,nan 2,honey,nv 3,georgedage,nan 4,kangkang,nv 上传数据: hdfs dfs -mkdir /sec ...

  5. Oracle数据库主键自增的两种方式(SEQUENCE和触发器)

    1.准备工作 创建oracle数据库表,用户表 SYS_USERS 其中user_id为主键 -- Create table create table SYS_USERS (user_id NUMBE ...

  6. html中获取modelandview中的json数据_从Bitmap中获取YUV数据的两种方式

    从Bitmap中我们能获取到的是RGB颜色分量,当需要获取YUV数据的时候,则需要先提取R,G,B分量的值,然后将RGB转化为YUV(根据具体的YUV的排列格式做相应的Y,U,V分量的排列) 所以这篇 ...

  7. 制作Docker镜像的两种方式

    此文已由作者朱笑天授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 一.使用docker commit命令制作docker镜像 1. pull一个centos6.6的基础镜像, ...

  8. Express全系列教程之(四):获取Post参数的两种方式

    一.关于POST请求 post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新. 相比于get请求,post ...

  9. docker容器运行mysql持久化_docker容器实现数据持久化的两种方式及其区别

    前言 这篇博文是我对docker实现数据持久化几种方式的特征进行一个总结. 在docker中,它的存储文件系统是在dockerhost上原有的xfs或ext4架设了一层文件系统:overlay2(将此 ...

最新文章

  1. Java项目:就业管理系统设计和实现(java+springboot+ssm)
  2. opencv mat release thrown_【OpenCV+Python】图像与视频处理入门
  3. 后端技术:Spring Boot 项目优化和 JVM 调优,真实有效。
  4. shell 判断字符串最后一个字符
  5. pytorch保存模型pth_pytorch中保存的模型文件.pth深入解析
  6. html是执行语言吗,HTML的基本语言
  7. 全面总结Java泛型
  8. java 怎么获取键的值_在 Java 中如何获取 Map 的所有键和值
  9. 操作系统原理(七)文件系统
  10. 数据重塑_人工智能能否重塑全球力量平衡?
  11. Python头歌合集(题集附解)
  12. SCLK时钟信号可以高电平有效也可以低电平有效
  13. python gtk_python 创建gtk应用程序
  14. 2008世界GDP排名
  15. Handing time
  16. python后端开发的书籍_资深程序员Python学习进阶书籍推荐_后端开发
  17. 虚拟存储器和cache的异同
  18. word中mathtype公式编辑
  19. 苹果CMS v10海螺v6.01模板/附17套苹果cms视频影视网站模板
  20. Hadoop学习(1)--Hadoop介绍

热门文章

  1. matlab tolfun,非线性方程组求解问题(关于TolFun设置问题)
  2. 状态的进行中、未开始、已结束状态的排序
  3. mo管理器java_Android开发之通过包管理器获取安装应用信息
  4. 人工智能技术发展历史
  5. solr mysql 全文搜索_全文检索Solr集成HanLP中文分词
  6. 选硬盘时,该选择SSD/SATA/SAS哪个好?
  7. mysql任意文件读取漏洞学习
  8. React最佳实践系列 —— 循序渐进理解 Dva中的model概念
  9. 玄冰400或其他CPU散热器如何从AMDCPU卡扣上轻松取下
  10. Sox语音转换的相关知识