docker-数据管理(3)
Docker 容器中管理数据主要有两种方式:
- 数据卷(Data volumes)
- 数据卷容器(Data volumes containers
数据卷是一个可供一个或者多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即时容器被删除
[root@server ~]# docker volume create myvolume #创建一个数据卷
myvolume
[root@server ~]# docker volume inspect myvolume #查看数据卷的信息
[root@server ~]# docker run -d -it --name myCentos --mount src=myvolume,dst=/data centos #创建一个myCentos容器,并将myvolume数据卷挂载到myCentos容器的/data目录
[root@server ~]# docker exec -it myCentos /bin/bash #进入容器
[root@8f3094a730af /]# echo “hello” > /data/test.txt
#查看文件
[root@server ~]# cd /var/lib/docker/volumes/myvolume/_data #在另外一个终端进入到数据目录里面
[root@server ~]# more test.txt
此时开启另外一个终端再次创建一个容器,并且挂载同样的数据卷,可以发现这种方式可以在容器之间共享和重用 [root@server ~]# docker run -d -it --name myCentos01 --mount src=myvolume,dst=/data centos #新开一个终端创建新的一个容器,挂载同样的数据卷
[root@server ~]# docker exec -it myCentos01 /bin/bash
[root@45c3ca27ddad /]# ls /data/
使用 -v 参数也可以指定挂载一个本地主机的目录到容器中
[root@server ~]# docker run -d -ti --name web -v /webapp:/opt/webapp centos #创建一个名字叫web的容器,并且将宿主机的/webapp目录 挂载到容器的/opt/webapp目录
[root@server ~]# ls /webapp/ #查看宿主机的目录,如果没有该目录,会自动创建
[root@server ~]# echo "hello" >> /webapp/index.html #追加一个文件进去
[root@server ~]# docker exec -ti web /bin/bash #进入容器
[root@16c66fe42017 /]# cat /opt/webapp/index.html #查看容器/opt/webapp目录下的数据
数据卷容器
如果有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。数据卷容器其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
[root@server ~]# docker run -d -v /dbdata --name dbdata centos #创建一个数据卷容器 [root@server ~]# docker run -d -it --volumes-from dbdata --name db1 centos #创建一个db1容器, 使用 --volumes-from 来挂载 dbdata 容器中的数据卷
[root@server ~]# docker exec -it db1 /bin/bash #进入db1容器中
[root@1863842f0c16 /]# ls #查看已成功挂载dbdata数据卷
anaconda-post.log dbdata etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
[root@1863842f0c16 /]# touch dbdata/file1 #在dbdata目录中创建一个文件 [root@server ~]# docker run -d -it --volumes-from dbdata --name db2 centos #再创建一个db2容器,使用 --volumes-from 来挂载 dbdata 容器中的数据卷
[root@server ~]# docker exec -it db2 /bin/bash #进入db2容器中
[root@0fca0699a7c7 /]# ls #查看也成功挂载dbdata数据卷
anaconda-post.log dbdata etc lib media opt root sbin sys usr
bin dev home lib64 mnt proc run srv tmp var
[root@0fca0699a7c7 /]# ls dbdata/ #并且还查看到了db1容器创建的file1文件,说明容器之间的数据共享了
file1 另外还可以级联创建
[root@server ~]# docker run -d -ti --name db3 --volumes-from db1 centos #创建一个db3容器,通过 --volumes-from 级联挂载上面的db1容器 级联删除:
注意:如果删除了挂载的容器(包括dbdata、db1和db2),数据卷也不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。
docker-数据管理(3)的更多相关文章
- Docker数据管理(四)
Docker数据管理 Docker数据分为两种: 数据卷 -v /data -v src:dst 数据卷容器 --volumes-from 数据卷 案例1:我们创建一个容器,起名叫nginx-volu ...
- Docker数据管理
用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及到Docker的数据管理. 容器中管理数据主要有两种方式: ...
- Docker系统七:Docker数据管理
Docker的数据管理 I. 基本概念 Docker容器一旦删除,其相关的rootf文件系统就会被删除,其容器内的数据将一并删除,为了保存相关数据,Docker提出了数据卷的概念. II. 数据卷 D ...
- Docker数据管理(五)
一.什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射 ...
- Docker数据管理(数据卷&数据卷容器)
生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷(Data Volumes):容 ...
- Docker实战(四)之Docker数据管理
在生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及到容器的数据管理操作. 容器中管理数据主要有两种形式: 数据卷:容器内数据直接映射到本地主 ...
- 【Docker】第五篇 Docker 数据管理
一.基本介绍 数据管理的原因:Docker中的容器一旦删除,容器本身的rootfs文件系统就会被删除,容器中的所有数据就会被删除.为了对一些需要持久化的数据,不随容器删除而删除,所以我们可以通过多个容 ...
- <Docker学习>5. docker数据管理
当我们创建了一个tomcat容器,如何简单部署一个web应用?如何将war包放入到容器中?也就是说怎么样把文件从宿主机中 "放入" 到容器中? docker cp命令可以将宿主机本 ...
- docker数据管理(2)
一.docker存储资源类型 docker两种存储资源类型 用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉 ...
- 六、【Docker笔记】Docker数据管理
前几节我们介绍了Docker的基本使用和三大核心概念,那么我们在使用Docker的过程中,Docker中必然产生了大量的数据,对于这些数据我们需要查看或者对这些数据进行一个备份,也有可能容器之间的数据 ...
随机推荐
- springboot项目启动-自动创建数据表
很多时候,我们部署一个项目的时候,需要创建大量的数据表.例如mysql,一般的方法就是通过source命令完成数据表的移植,如:source /root/test.sql.如果我们需要一个项目启动后, ...
- Sql练习201908210951
表结构: create table SalePlan ( PlanId ,) primary key, GoodsId int, PlanPrice decimal(,) ); go create t ...
- A. Array with Odd Sum Round #617(水题)
A. Array with Odd Sum time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Spring的IOC操作
Spring的IOC操作 把对象的创建交给spring ioc操作两个部分 (1)ioc的配置文件方式 (2)ioc基于注解的方式 IOC 的底层原理 1.ioc底层原理使用技术 (1)xml配置文件 ...
- Git创建本地仓库&把pycharm项目添加GitHub仓库上
一.创建本地仓库 1.1.下载Git地址:https://git-scm.com/downloads 下载完,一路next就可以 1.2.打开Git Bash输入: #创建一个learngit目录 $ ...
- js实现 多级联动
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- touch多点触摸事件
touch--单点 targetTouches. changeTouches 多点: targetTouches--当前物体上的手指数 *不同物体上的手指不会互相干扰 不需要做多点触摸的时候---平均 ...
- ML-Agents(六)Tennis
目录 ML-Agents(六)Tennis 一.Tennis介绍 二.环境与训练参数 三.场景基本结构 四.代码分析 环境初始化脚本 Agent脚本 Agent初始化与重置 矢量观测空间 Agent动 ...
- .NET Core项目部署到Linux(Centos7)(四)VMware Workstation虚拟机Centos 7安装
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- Linux服务器架设篇,DNS服务器(三),正反解区域的配置
一.大体架构 DNS服务器其实只有一个"真正"的配置文件,即 /etc/named.conf .其他的配置文件都是依据此配置展开的.每个域都需要两个配置文件,即正解文件和反解文件. ...