4.docker数据卷管理

生产过程中使用docker往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,因此就需要数据卷来做数据持久化

*数据卷:容器内数据直接映射到本地主机环境

数据卷的特性:

1)可以在容器之间共享和重用,容器间传递数据变得高效方便

2)对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作

3)对数据卷的更新不会影响镜像,解耦了应用和数据

4)卷会一直存在,直到没有容器使用,可以安全地卸载它

创建数据卷

docker run -it --name web -v ~/webapp:/webapp ubuntu:latest /bin/bash

本地目录必须是绝对路径,如果目录不存在docker会自动创建

修改数据卷的权限,默认是rw(读写),ro(只读)

docker run -it --name web -v ~/webapp:/webapp:ro ubuntu:latest /bin/bash

*数据卷容器

创建数据卷容器:

docker run -it --volumes-from web --name web2 ubuntu

可以多次使用--volumes-from参数来从多个容器挂载多个数据卷。

还可以从其他已经挂载了容器卷的容器来挂载数据卷

如果删除了挂载数据卷的容器,数据卷并不会自动删除。

如果要删除一个数据卷,必须在最后一个还挂载着它的容器显式

使用docker rm -v命令指定同时删除关联的容器

*docker数据卷备份
mkdir backup &&cd backup #在物理机上创建backup目录
docker run --volumes-from webapp -v $(pwd):/backup --name worker ubuntu
tar cvf /backup/backup.tar /webapp
#这个命令的原理是:新创建一个容器worker,连接了数据卷容器webapp,并将物理机backup目录映射到worker的/backup,
然后tar命令就将数据卷webapp的/webapp目录打包到/backup-->物理机backup目录

*docker数据卷还原到其他容器
先建立一个新容器
docker run -it -v /webapp --name db1 ubuntu /bin/bash
相同的原理,新建一个容器worker1,连接了数据卷容器db1,映射了物理机backup目录到worker1的/backup目录,tar命令将
备份包还原到db1的/webapp下,完成还原
docker run --volumes-from db1 --name worker1 -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar

如果还原到原容器
 docker run --volumes-from webapp -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar

原文地址:https://www.cnblogs.com/soulmates/p/9242836.html

时间: 2024-11-10 21:54:41

4.docker数据卷管理的相关文章

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

1.Docker数据卷管理 在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中.目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中: 1.volumes:Docker管理宿主机文件系统的一部分(默认文件位置:/var/lib/docker/volumes) 常用 由上图可知我们到了 /var/lib/docker/volumes 目录下有的文件名很长这时匿名 二有的则是我们创建时制定的 2.

Docker之七:Docker数据卷管理

容器数据持久化 1.数据卷:将本地磁盘mount进入容器-v /dest-v src:dst [ro]|[rw] 2.数据卷容器:将外部容器分享给容器--volumes-from数据卷容器专门用来挂载数据卷的容器,以供其他容器引用和使用 3.数据卷管理命令docker volume 一.数据卷:1.给容器内部映射一个外部数据卷 -v src:dest[[email protected] nginx]# docker run -d --name web1 -v /opt/nginx:/usr/sh

docker数据卷管理及网络基础配置

数据卷 数据卷容器 数据卷迁移数据 端口映射 容器间通信 数据卷的管理 当需要查看容器内应用产生的数据或者把容器内数据备份及多个容器数据共享.有两种方式,数据卷以及数据卷容器. 数据卷 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,特性如下: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新不会影响镜像 卷会一直存在,直到没有容器使用 其使用类似与mount操作. 在容器内创建一个数据卷 #docker run -d -P --name web -v /webapp

[docker]动态挂卷与数据卷管理

声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! 动态挂卷 目前docker不支持动态挂卷.有同事就提出,以下方法是否可行:1. 将块设备通过ln链接到容器与host的映射目录.2. 将块设备挂载到容器与host的映射目录. 以下是实验过程:由于非特权无法看到/dev下的设备,因此ln链接实际是无效的. 同理,对于其他块设备,也是这样的.当然,我们可以配置privileged

Docker 数据卷,数据卷容器详细介绍

Docker 数据卷,数据卷容器详细介绍 引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(mount

docker数据卷应用场景

docker数据卷应用场景 在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载统一个数据卷,从而共享数据卷中的数据 当宿主机不能保证一定存在某一个目录或一些固定的文件路径时,使用数据卷可以规避这种限制带来的问题 当想把容器中的数据存储在宿主机之外的地方时,比如远程主机上和云存储上 当你需要把容器数据在不同宿主机之间备份.恢复或迁移时,数据卷是很好的选择 数据覆盖问题 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中 如果挂载一个非空的数据卷到容

Docker 数据卷与容器互联(3)

title: Docker 数据卷与容器互联(3) date: 2018-12-15 14:50:42 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.

如何使用docker数据卷?

开始之前 如果你有一些需要持续更新的数据并且希望持久化数据,或者需要在不同的容器之间共享数据,再者需要主机与容器之间共享数据,那么你可以使用数据卷来满足这些需求. 数据卷定义 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:数据卷可以在容器之间共享和重用.对数据卷的修改会立马生效.数据卷默认会一直存在,即使容器被删除. 使用数据卷 数据卷有两种创建方式一是创建容器时创建数据卷,二是先创建好数据卷,在创建容器时挂载这个数据卷,两种方式均可以. 创建一个数据卷

Docker学习笔记之docker数据卷

Docker数据卷数据卷是经过特殊设计的目录,可用绕过联合文件系统(UFS),为一个或多个容器提供访问 数据卷的特点:数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接进行修改数据卷的变化不会影响镜像的更新卷会一直存在,即使挂载数据卷的容器已经被删除 为容器添加数据卷:docker run -v ~/container_data:/data -it centos /bin/bash:contai