docker中容器数据卷volume介绍

目录
  • docker 容器数据卷volume
  • 使用数据卷
    • 方式一:直接使用命令挂载 -v
    • 方式二:Dockerfile
  • 数据卷容器
  • 总结

docker 容器数据卷volume

如果数据都在容器中,那么我们删除容器的时候数据就会丢失,所以我们希望数据可以持久化。
例如MySQL容器,我们希望数据可以存储在本地,当MySQL容器删除的时候,数据不会丢失。
容器之间可以有一个数据共享的技术,Docker容器中产生的数据,同步到本地,这就是卷技术。也就是数据挂载技术,将我们容器内的目录,挂载到Linux上面。


挂载之后,我们在容器内做的操作回同步到Linux宿主机上。

使用数据卷

方式一:直接使用命令挂载 -v

docker run -it -v 主机目录:容器目录
#测试
[root@sumarua home]# docker run -it -v /home/ceshi:/home centos /bin/bash

# 启动起来之后我们可以通过docker inspect容器id]来查看

示例

MySQL的数据持久化

[root@sumarua home]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 --name mysql mysql5.7

具名挂载和匿名挂载

#匿名挂载
-v 容器内路径
docker run -d -p --name nginx01 -v /etc/nginx nginx
#查看所有的volume的情况
docker volume ls

# 具名挂载
# 通过 -v 卷名:容器内路径
docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx nginx
#查看
docker volume ls

我们可以查看一下卷的挂载的具体位置

docker volume inspect [卷名]

所有的docker 容器内的卷,没有指定目录的情况下都在/var/lib/docker/volumes/xxxx/_data
通过具名挂载我们可以方便找到卷。
如何确定是具名挂载还是匿名挂载,还是指定路径挂载

-v 容器内路径                 #匿名挂载
-v 卷名:容器内路径            #具名挂载
-v /宿主机路径:容器内路径      #指定路径挂载

拓展:

# 通过 -v 容器内路径:ro rw 改变读写权限
ro  readonly   #只读
rw  readwrite  #可读可写

#默认可读可写
#一旦设置了容器权限,容器对我们挂载出来的内容就有限定了
#ro 这个路径只能通过宿主机来操作,容器内部是无法操作的。

方式二:Dockerfile

Dockerfile 就是用来构建docker镜像的构建文件,命令脚本。
通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个一个的命令,每个命令都是一层。

# 创建一个dockerfile文件,名字可以随机,建议Dockerfile
# 文件中的内容 指令(大写)参数
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
# 这里的每个命令,就是镜像的一层

数据卷容器

--volumes-from

# 用法
[root@sumarua]#docker run -it --name docker02 --volumes-from docker01 sumarua/centos

实现数据同步,容器间数据共享

数据卷容器删除文件后不会影响挂载在此容器上的其他容器的数据访问。是一种拷贝的概念,备份拷贝机制。

容器之间配置信息的传递,数据卷容器的生命周期持续到没有容器使用为止。
但是一旦持久化到本地,本地的数据是不会删除的。

总结

到此这篇关于docker中容器数据卷volume介绍的文章就介绍到这了,更多相关docker数据卷volume内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    在介绍VOLUME指令之前,我们来看下如下场景需求: 1)容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上.一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像).能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在. 2)当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上. 这样的话,我在主机上修改文件(如html,js等)后,需要再同步

  • Docker中容器数据卷(Data Volume)和数据管理详解

    卷(Volume) 众所周知卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必重新构建镜像. 一.数据卷 数据卷是一个可以绕过联合文件系统的,专门指定的可在一或多个容器间共享目录.卷为提供为持久化或共享数据提供了一些有用的特性. 数据卷设计的初哀是提供持久化数据,而与容器的生命周期无关.因此,在删除容器时,Docker不会自动删除卷,直到没有容器再

  • Docker volume使用详解及实例

    Docker volume使用 一个数据卷是一个特别指定的目录,该目录利用容器的UFS文件系统可以为容器提供一些稳定的特性或者数据共享.数据卷可以在多个容器之间共享. 创建数据卷,只要在docker run命令后面跟上-v参数即可创建一个数据卷,当然你也可以跟多个-v参数来创建多个数据卷,当创建好带有数据卷的容器后,你就可以在其他容器中通过--volumes-froms参数来挂载该数据卷了,而不管该容器是否运行.你也可以在Dockerfile中通过VOLUME指令来增加一个或者多个数据卷. 如果

  • Docker 数据管理Named volume详解

    Docker数据管理:Named volume Docker中可以使用Named volume和data container来进行数据的管理. 单一Container的使用Helloworld Step 1:创建一个Named Volume 事前确认volume的信息,没有VOLUME存在 [root@host88 volumes]# docker volume ls DRIVER VOLUME NAME [root@host88 volumes]# 确认/var/lib/docker/volu

  • docker中容器数据卷volume介绍

    目录 docker 容器数据卷volume 使用数据卷 方式一:直接使用命令挂载 -v 方式二:Dockerfile 数据卷容器 总结 docker 容器数据卷volume 如果数据都在容器中,那么我们删除容器的时候数据就会丢失,所以我们希望数据可以持久化. 例如MySQL容器,我们希望数据可以存储在本地,当MySQL容器删除的时候,数据不会丢失. 容器之间可以有一个数据共享的技术,Docker容器中产生的数据,同步到本地,这就是卷技术.也就是数据挂载技术,将我们容器内的目录,挂载到Linux上

  • Docker中容器数据卷详解

    目录 什么是容器数据卷 数据的覆盖问题 使用数据卷 方式一:直接使用命令挂载 -v 测试挂载卷 方式二:Dockerfile文件 数据卷命令 查看数据卷 方式一:docker inspect 容器ID 方式二:docker volume inspect juming-nginx 挂载三种方式 扩展 什么是容器数据卷 从docker的理念说起,docker将应用和环境打包成一个镜像,运行镜像(生成容器)就可以访问服务了. 如果数据都存在容器中,那么删除容器,数据就会丢失!需求:数据可以持久化 My

  • Docker容器数据卷技术介绍

    目录 Docker容器数据卷技术介绍 一.卷技术介绍 二.使用数据卷 Docker容器数据卷技术介绍 一.卷技术介绍 现在我们知道docker的理念就是把应用和环境打包成镜像,方便我们去运行容器. 但是现在有一个问题,比如我容器里的mysql存了好多的数据,那万一容器被删除,数据是不是就没了?这显然不合适. 于是,一个新的需求产生了:将数据存储在容器之外的地方,比如本地.对应的解决方案就是卷技术了,通过它,将容器中产生的数据同步到本地,让容器之间可以共享数据. 卷技术,说白了就是目录的挂载,将容

  • Docker中数据卷(volume)管理的两种方式

    上篇文章给大家介绍过 docker基础知识之挂载本地目录的方法 ,今天给大家介绍Docker中数据卷(volume)管理的两种方式,具体内容如下所示: 什么是数据卷 数据卷( volume ):volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久化提供便利. 为什么要用数据卷 Docker分层文件系统存在的问题: Docker的镜像是由一系列的只读层组合而来的,当启动一个容器时, Docker加载镜像的所有只读层,并在最上

  • 浅谈docker学习之docker数据卷(volume)

    1.什么是数据卷volume 为了了解什么是Docker Volume,首先我们需要明确Docker内的文件系统是如何工作的.Docker镜像被存储在一系列的只读层.当我们开启一个容器,Docker读取只读镜像并添加一个读写层在顶部.如果正在运行的容器修改了现有的文件,该文件将被拷贝出底层的只读层到最顶层的读写层.在读写层中的旧版本文件隐藏于该文件之下,但并没有被不破坏 - 它仍然存在于镜像以下.当Docker的容器被删除,然后重新启动镜像时,将开启一个没有任何更改的新的容器 - 这些更改会丢失

  • Docker容器数据卷介绍及操作示例

    目录 容器数据卷介绍 什么是数据卷 数据卷能做什么? 特点 Docker 容器数据卷操作 直接命令添加数据卷 dockerfile 添加数据卷 Docker 数据卷容器 数据卷容器简介 案例演示 容器数据卷介绍 什么是数据卷 将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求是持久化的. 容器之间希望有可能共享数据. Docker 容器产生的数据,如果不通过 docker commit 生成新的镜像,使得数据做为镜像的一部分保存下载,那么当容器删除后,数据自然也就没有了

  • 详解Docker容器数据卷

    是什么 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了. 为了能保存数据在docker中我们使用卷. 一句话:有点类似我们Redis里面的RDB和AOF 能干嘛 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系

  • docker容器数据卷之具名挂载和匿名挂载问题

    目录 什么是容器数据卷 为什么需要容器数据卷 使用 如何查看是否使用了数据卷 具名挂载和匿名挂载 指定路径挂载 具名挂载 匿名挂载 容器与容器之间的数据共享 --volumes-from 什么是容器数据卷 容器数据卷就是目录的挂载,将我们的容器的目录挂载到宿主机上,从而实现打通宿主机和容器之间的文件共享功能: 为什么需要容器数据卷 docker理念就是将应用和环境打包成一个镜像:但是数据怎么办呢?且不说数据库,一个项目在运行过程种肯定会产生大量的日志,这些日志对开发人员来说是非常重要的, 因为有

  • Docker向数据卷Volume写入数据

    一.前言 我们知道,镜像是只读的,容器是在镜像的基础上加了一层读写层,这样容器就可以写了.既然容器可以进行写入了,那么我们就可以把一些数据放进容器里面.但是这样会有一种问题:如果容器被删除了,那么容器里面的数据也将会被删除.这该怎么解决呢?这时我们就可以使用Volume来解决这种问题. 二.volume 1.什么是volume 我们先来考虑这样一个问题:如何把源代码放进容器里面 可以在制作镜像时直接把源代码嵌入里面.(不考虑这种方式) 把源代码挂载到容器的可读写层. 那么什么是Volume呢?

随机推荐