Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs。
volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。
bind mounts:可以存储在宿主机系统的任意位置。
tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统。

作用:
容器之间共享数据卷
容器被删除,数据卷不会被删除而造成数据的丢失,从而实现持久化。
实例:
 创建数据卷并查看详细信息。
[root@linux-docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
[root@linux-docker01 ~]# docker volume create nginx-vol
nginx-vol
[root@linux-docker01 ~]# docker volume ls
DRIVER              VOLUME NAME
local               nginx-vol
[root@linux-docker01 ~]# docker volume inspect nginx-vol 
[
    {
        "CreatedAt": "2018-06-26T16:40:28+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/nginx-vol/_data",
        "Name": "nginx-vol",
        "Options": {},
        "Scope": "local"
    }
]
volume模式创建一个容器挂载数据卷
[root@linux-docker01 ~]# docker run -d -it --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
a130825851e415c284c54a94bc2659100b9f56a814e3d88d2f6cb78910a107bb
[root@linux-docker01 ~]# docker exec -it nginx-test  bash
root@a130825851e4:/# cd /usr/share/nginx/html/
root@a130825851e4:/usr/share/nginx/html# ls
50x.html  index.html
[root@linux-docker01 _data]# pwd
/var/lib/docker/volumes/nginx-vol/_data
[root@linux-docker01 _data]# ls
50x.html  index.html
注:如果在src没有指定数据卷,则会自动创建,随机生成名字。
Bind Mounts模式创建容器挂载数据卷
[root@linux-docker01 ~]# mkdir -p /app/wwwroot
[root@linux-docker01 ~]# docker run -d -it --name=nginx-test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx
0353e05bc3083ec84480c6bf7bd83cf3972e84c675827f5760e4cd5029cd19f6
注:
1、绑定的源目录一定要存在,如果不存在则会抛出一个错误,不会自动创建。
2、 如果挂载目标在容器中非空目录,则该目录现有内容将被隐藏
官方文档:https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume

Docker数据卷持久化的更多相关文章

  1. docker 数据卷之进阶篇

    笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入,笔者对 docker 数据卷的理解与认识也在不断的增强.本文将在前 ...

  2. docker 数据卷 ---- 进阶篇

    笔者在<Docker 基础 : 数据管理>一文中介绍了 docker 数据卷(volume) 的基本用法.随着使用的深入,笔者对 docker 数据卷的理解与认识也在不断的增强.本文将在前 ...

  3. Docker学习第三天(Docker数据卷管理)

    1.Docker数据卷管理 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供了三种 ...

  4. docker数据卷(Data Volumes)

    Docker宿主机和容器之间文件拷贝docker copy 前言: Docker 数据管理 在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行 数据共享,这必然涉及 ...

  5. 『现学现忘』Docker基础 — 33、Docker数据卷容器的说明与共享数据原理

    目录 1.数据卷容器的说明 2.数据卷容器共享数据原理 3.总结 4.练习:MySQL实现数据共享 1.数据卷容器的说明 (1)什么是数据卷容器 一个容器中已经创建好的数据卷,其它容器通过这个容器实现 ...

  6. docker数据卷技术

    数据卷技术 数据卷手动挂载 数据卷容器 part1:数据卷挂载方式 数据卷手动挂载 -v 主机目录:容器目录 #核心参数 #示例 docker run -it --name=centos_test - ...

  7. 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作

    Docker内部数据管理和Docker之间的数据共享为数据卷和数据卷容器,实例解析1.将本地的文件作为容器的数据卷,2.数据卷flocker插件实现容器集群(或者Docker Swarm)的数据共享3 ...

  8. docker数据卷学习-利用数据卷实现mysql的快速恢复和迁移

    docker数据卷学习 一 新建带有数据卷的容器 1.从docker hub下载centos7镜像 # docker pull centos 2. 创建container # docker run - ...

  9. docker数据卷挂载

    docker数据卷挂载笔记 我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: ...

随机推荐

  1. Django 的命令及简单例子

     第一步:下载mysql驱动 cmd进入创建好的django项目目录:然后使用下面的命令创建一个项目testdj.  sudo /usr/lib/python3/dist-packages/djang ...

  2. js form表单的校验

    if(!$("#form").validate().form()){ return false;} <元素 class="required">< ...

  3. 2018.11.30开始学习shader

    学习资料: 乐乐女神的<unity Shader入门精要>

  4. bs4 FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

    安装beautifulsoup后,运行测试报错 from urllib import requestfrom bs4 import BeautifulSoup url = "http://w ...

  5. Js原生封装选项卡组件

    class MyTab extends HTMLElement{ //创建一个类名MyTab constructor(){ //构造函数 super(); //指向父类构造函数,必须要有的 const ...

  6. Axure文本框验证和外部url的调用

    文本框的验证和外部url的调用: 场景: 当输入文本框中的内容是满足下面条件时:输入4-10的数字,页面会跳转到QQ注册(https://ssl.zc.qq.com/v3/index-chs.html ...

  7. python+selenium的web自动化测试之一(手工执行)

    环境 Windows 前提: 1. python已正常安装 2. selenium已正常安装. 如果没安装,会报:ImportError: No module named 'selenium' (参考 ...

  8. Underscore源码阅读极简版入门

    看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-an ...

  9. angular实操

    一.创建angular工程(一定要在管理员权限下运行,Windows可忽略) 1.安装angular CLi 在终端窗口打开想要创建的工程所在文件夹,如:Cd Desktop\Angular-proj ...

  10. Oracle查看存储过程最后编辑时间

    场景:我们在实现一个需求编写存储过程时,在正式上线前,总会有多个修改版本,时间一长可能发现一个过程甚至有5个以上的版本,如果没有添加注释自己都分不清哪个版本是最新的,这时就可以通过查看该存储的最后编辑 ...