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如何固定IP设置的方法

    Docker如何固定IP设置的方法

    本篇文章主要介绍了Docker如何固定IP设置的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Docker学习笔记之docker入门

    Docker学习笔记之docker入门

    docker可以类比成window下的VMware。docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜像中运行的软件。docker的强大之处在于VMware只能运行几个虚拟机的设备上docker可以同时运行几十甚至上百个虚拟机。
    2016-11-11
  • docker-compose部署MySQL8的实现

    docker-compose部署MySQL8的实现

    本文主要介绍了docker-compose部署MySQL8的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 解决docker数据文件过大导致根磁盘满的问题

    解决docker数据文件过大导致根磁盘满的问题

    本篇文章主要介绍了解决docker数据文件过大导致根磁盘满的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Docker下利用jenkins和docker实现持续交付

    Docker下利用jenkins和docker实现持续交付

    这篇文章主要介绍了利用jenkins和docker实现持续交付功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Docker Compose构建Jenkins的实现

    Docker Compose构建Jenkins的实现

    本文主要介绍了Docker Compose构建Jenkins的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • docker生命周期管理和镜像管理命令详解

    docker生命周期管理和镜像管理命令详解

    Docker通过容器技术提供了一种轻量级、快速部署和可移植的应用程序运行环境,极大地简化了应用程序的部署和管理过程,提高了开发和运维的效率,这篇文章主要介绍了docker生命周期管理和镜像管理命令,需要的朋友可以参考下
    2023-08-08
  • Linux下Docker及portainer相关配置方法

    Linux下Docker及portainer相关配置方法

    本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,通过实例代码给大家介绍了Linux下Docker及portainer相关配置方法,感兴趣的朋友跟随小编一起看看吧
    2019-06-06
  • docker搭建minio的问题解决

    docker搭建minio的问题解决

    本文主要介绍了docker搭建minio的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 详解docker 制作mysql镜像并自动安装脚本

    详解docker 制作mysql镜像并自动安装脚本

    这篇文章主要介绍了docker mysql镜像制作并自动安装脚本,主要包括centos7环境下 一键制作mysql docker镜像并安装,对docker 制作mysql镜像shell脚本感兴趣的朋友一起看看吧
    2022-05-05

最新评论