Docker volume使用详解及实例

 更新时间:2016年11月02日 11:32:59   投稿:lqh  
这篇文章主要介绍了Docker volume使用详解及实例的相关资料,并附简单实例,帮助大家学习参考,需要的朋友可以看下

Docker volume使用

    一个数据卷是一个特别指定的目录,该目录利用容器的UFS文件系统可以为容器提供一些稳定的特性或者数据共享。数据卷可以在多个容器之间共享。

      创建数据卷,只要在docker run命令后面跟上-v参数即可创建一个数据卷,当然你也可以跟多个-v参数来创建多个数据卷,当创建好带有数据卷的容器后,你就可以在其他容器中通过--volumes-froms参数来挂载该数据卷了,而不管该容器是否运行。你也可以在Dockerfile中通过VOLUME指令来增加一个或者多个数据卷。

      如果你有一些数据想在多个容器间共享,或者想在一些临时性的容器中使用该数据,那么最好的方案就是你创建一个数据卷容器,然后从该临时性的容器中挂载该数据卷容器的数据。例如如下操作:

#启动一个Volume_Container容器,包含两个数据卷
docker run -v /var/volume1 -v /var/volume2 -name Volume_Container ubuntu14.04 linux_command

#创建App_Container容器,挂载Volume_Container容器中的数据卷
docker run -t -i -rm -volumes-from Volume_Container -name App_Container ubuntu14.04 linux_command

#或者再创建一个容器,挂载App_Container中从Volume_Container挂载的数据卷
docker run -t -i -rm -volumes-from App_Container -name LastApp_Container ubuntu14.04 linux_command

      1    在一个终端内创建数据卷容器,并在数据卷目录内写入测试文件

      2    另打开一个容器,挂载上一个数据卷容器的数据卷,查看测试文件

          即使你删除了刚开始的第一个数据卷容器或者中间层的数据卷容器,只要有其他容器使用数据卷,数据卷都不会被删除的。

      你也可以把一个本地主机的目录当做数据卷挂载在容器上,同样是在docker run后面跟-v参数,不过-v后面跟的不再是单独的目录了,他是[host-dir]:[container-dir]:[rw|ro]这样格式的,host-dir是一个绝对路径的地址,如果host-dir不存在,则docker会创建一个新的数据卷,如果host-dir存在,但是指向的是一个不存在的目录,则docker也会创建该目录,然后使用该目录做数据源。例如:

docker run -i -t -v /tmp:/mnt ubuntu/14.04:14.04 /bin/bash


        你不能使用docker export、save、cp等命令来备份数据卷的内容,因为数据卷是存在于镜像之外的,但是总会有变通方法的,如下:

docker run -rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data

          创建一个新容器,挂载数据卷容器,同时挂载一个本地目录,然后把远程数据卷容器的数据卷通过备份命令备份到映射的本地目录里面。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 使用docker搭建redis主从的方法步骤

    使用docker搭建redis主从的方法步骤

    这篇文章主要介绍了使用docker搭建redis主从的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • docker重新加载nginx配置方式

    docker重新加载nginx配置方式

    这篇文章主要介绍了docker重新加载nginx配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Docker 容器生命周期 架构 以及和VM之间的差异详解

    Docker 容器生命周期 架构 以及和VM之间的差异详解

    这篇文章主要介绍了Docker 容器生命周期 架构 以及和VM之间的差异详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker搭建Redis Cluster集群的教程详解

    Docker搭建Redis Cluster集群的教程详解

    这篇文章主要为大家详细介绍了Docker搭建Redis Cluster集群的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的可以参考下
    2024-03-03
  • 在docker中运行mariadb程序的方法

    在docker中运行mariadb程序的方法

    这篇文章主要介绍了在docker中运行mariadb程序的方法,首先大家先安装docker,然后在进行相应的操作,具体内容详情大家参考下本文
    2018-05-05
  • Docker安装、创建镜像、加载并运行NodeJS程序的详细过程

    Docker安装、创建镜像、加载并运行NodeJS程序的详细过程

    本文给大家介绍Docker安装、创建镜像、加载并运行NodeJS程序的相关知识,通过示例给大家详细介绍创建一个nodejs程序的docker镜像的方法,需要的朋友跟随小编一起看看吧
    2021-06-06
  • docker初始化安装时的WSL两个问题详解

    docker初始化安装时的WSL两个问题详解

    这篇文章主要给大家介绍了关于docker初始化安装时的WSL两个问题,文中通过代码以及图文介绍的非常详细,对初学者学习Docker,非常有帮助,需要的朋友可以参考下
    2023-12-12
  • 3分钟带你学会docker搭建帕鲁服务器

    3分钟带你学会docker搭建帕鲁服务器

    幻兽帕鲁已经正式开服,目前在线人数已经超过7W+,很多玩家想自己创建服务器和朋友一起联机游玩,本文主要介绍了3分钟带你学会docker搭建帕鲁服务器,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 基于docker 搭建Prometheus+Grafana的过程详解

    基于docker 搭建Prometheus+Grafana的过程详解

    这篇文章主要介绍了基于docker 搭建Prometheus+Grafana的过程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Docker 容器互联互通的实现方法

    Docker 容器互联互通的实现方法

    这篇文章主要介绍了Docker 容器互联互通,本文讲解不同网络下的容器可以通过加入同一个docker网络,来访问该docker网络下的容器,并且既可以通过容器ip也可以通过容器名连接,非常方便,需要的朋友可以参考下
    2022-10-10

最新评论