Docker数据管理(四)
Docker数据管理

Docker数据分为两种:
数据卷
- -v /data
- -v src:dst
数据卷容器
- --volumes-from
数据卷
案例1:我们创建一个容器,起名叫nginx-volume-demo1挂载到容器中的/data目录下
[root@linux-node1 ~]# docker run -d --name nginx-volume-demo1 -v /data nginx
96892a7bb67e9c687f29d07ea674ca527ab09dee6b0ec1217bd5aebf328d8f44
进入容器,目录下已经有我们data目录
[root@linux-node1 ~]# ./docker_in.sh nginx-volume-demo1
root@96892a7bb67e:/# ls /
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
查看当前挂载目录
root@96892a7bb67e:/# mount
/dev/mapper/docker-8:2-134698748-3b4e90ae453399aae2cd6b256c6e27996eaabd478669263beb955efb9def6017 on / type xfs (rw,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,relatime,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (ro,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/net_cls type cgroup (ro,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/perf_event type cgroup (ro,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/devices type cgroup (ro,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (ro,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (ro,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/cpuset type cgroup (ro,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpuacct,cpu type cgroup (ro,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/blkio type cgroup (ro,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (ro,nosuid,nodev,noexec,relatime,memory)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
/dev/sda2 on /data type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda2 on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda2 on /etc/hostname type xfs (rw,relatime,attr2,inode64,noquota)
/dev/sda2 on /etc/hosts type xfs (rw,relatime,attr2,inode64,noquota)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
proc on /proc/asound type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/fs type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
tmpfs on /proc/kcore type tmpfs (rw,nosuid,mode=755)
tmpfs on /proc/timer_list type tmpfs (rw,nosuid,mode=755)
tmpfs on /proc/timer_stats type tmpfs (rw,nosuid,mode=755)
tmpfs on /proc/sched_debug type tmpfs (rw,nosuid,mode=755)
提示:虽然我们不知道mount到哪里,但是在却有date目录
root@96892a7bb67e:/# mount |grep data
/dev/sda2 on /data type xfs (rw,relatime,attr2,inode64,noquota)
通过docker inspect来查看mount的情况
[root@linux-node1 ~]# docker inspect -f {{.Mounts}} nginx-volume-demo1
[{f3aa312c4981a6653d1ca75b4df8b76459622dee6b798077a8b350b4d8e73751 /var/lib/docker/volumes/f3aa312c4981a6653d1ca75b4df8b76459622dee6b798077a8b350b4d8e73751/_data /data local true }]
我们可以在这个文件下创建一个文件,然后在进容器中进行查看
[root@linux-node1 ~]# cd /var/lib/docker/volumes/f3aa312c4981a6653d1ca75b4df8b76459622dee6b798077a8b350b4d8e73751/_data
[root@linux-node1 _data]# touch demo.txt
[root@linux-node1 _data]# ls
demo.txt
root@96892a7bb67e:/# cd /data/
root@96892a7bb67e:/data# ls
demo.txt
小结:根据上面的操作,我们可以看出物理机的/var/lib/docker/volumes/f3aa312c4981a6653d1ca75b4df8b76459622dee6b798077a8b350b4d8e73751/_data目录实际上就是对应到容器中的/data目录。
案例2:我们创建一个容器,起名叫nginx-volume-demo2,指定物理机上/data/docker-volume-nginx目录挂载到容器中的/data目录下
[root@linux-node1 ~]# docker run -d --name nginx-volume-demo2 -v /data/docker-volume-nginx/:/data nginx
8814cf80b424d93624d85044a093de67c67fba8dac1c8e0b832727a43d01fc0b
备注:/data/docker-volume-nginx 物理机存储文件的目录,/data容器中的目录。
我们可以在这个/data/docker-volume-nginx目录下创建一个文件,然后在进容器中/data目录进行查看
[root@linux-node1 _data]# cd /data/docker-volume-nginx
[root@linux-node1 docker-volume-nginx]# touch demo2.txt
[root@linux-node1 docker-volume-nginx]# ls
demo2.txt
[root@linux-node1 ~]# ./docker_in.sh nginx-volume-demo2
root@8814cf80b424:/# cd /data/
root@8814cf80b424:/data# ls
demo2.txt
案例3:只读方式挂载
[root@linux-node1 ~]# docker run -d --name nginx-volume-demo3 -v /data/docker-volume-nginx/:/data:ro nginx
8822c2f37e9e393b5e845b0970c2037c932134568dd43e6460bb057bbb97f834
案例4:文件挂载
docker run --rm -it --name nginx-volume-demo4 -v /root/.bash_history:/.bash_history nginx /bin/bash

数据卷容器
数据卷容器就是可以让一个容器访问另一个容器的卷,不管这个容器是否运行都可以访问到。
数据卷容器简单解释就是:它可以让这个数据在多个容器中共享。
案例1:我们创建一个容器,起名叫volume-demo1,访问另一个容器nginx-volume-demo2的/data目录
[root@linux-node1 ~]# docker run -it --rm --name volume-demo1 --volumes-from nginx-volume-demo2 centos /bin/bash
[root@86c9a83d95be /]# cd /data
[root@86c9a83d95be data]# ls
demo2.txt
- --volumes-from 另一个容器的名称
Docker数据管理(四)的更多相关文章
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...
- Docker系列(四):Docker容器互联
基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文 ...
- 用前端姿势玩docker【四】基于docker快速构建webpack的开发与生产环境
目录 用前端姿势玩docker[一]Docker通俗理解常用功能汇总与操作埋坑 用前端姿势玩docker[二]dockerfile定制镜像初体验 用前端姿势玩docker[三]基于nvm的前端环境构建 ...
- Docker实战(四)之Docker数据管理
在生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及到容器的数据管理操作. 容器中管理数据主要有两种形式: 数据卷:容器内数据直接映射到本地主 ...
- docker 实践四:数据管理
这篇是关于 docker 的数据管理. 注:环境为 CentOS7,docker 19.03. 一般容器中管理数据主要有两种方式: 数据卷(Data Volumes):容器内数据直接映射到本地主机环境 ...
- Docker数据管理(五)
一.什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射 ...
- 【Docker】第五篇 Docker 数据管理
一.基本介绍 数据管理的原因:Docker中的容器一旦删除,容器本身的rootfs文件系统就会被删除,容器中的所有数据就会被删除.为了对一些需要持久化的数据,不随容器删除而删除,所以我们可以通过多个容 ...
- Docker数据管理
用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及到Docker的数据管理. 容器中管理数据主要有两种方式: ...
- [docker]docker的四种网络方式
声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...
随机推荐
- 团队项目M1阶段个人反思
郑培蕾: 作为项目的PM,我前期的工作还是有很大的缺陷的,因为没有在开发之前对项目进行一个合理的评估,所以后来分配任务的时候就很不科学, 而且任务分配的比较粗糙,没有细化到每个人每天应该做什么,这就导 ...
- 20145214 《网络对抗技术》 Web基础
20145214 <网络对抗技术> Web基础 1.实验后回答问题 (1)什么是表单 表单在网页中主要负责数据采集,提供了填写数据.选择数据,收集数据并提交给后台的功能 一个表单有三个基本 ...
- Sprint6
进展:今天更改一下我们的计划,从实现主要功能开始,及闹钟和事件提醒部分.查看了一些有关闹钟部分的资料.
- 进阶系列(5)—— C#XML使用
一.XML介绍 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨 ...
- 复利计算测试(C语言)
对我们和复利计算程序,写单元测试. 有哪些场景? 期待的返回值 写测试程序. 运行测试. 测试模块 测试输入 预期结果 运行结果 bug跟踪 计算终值 (本金,年限,利率) 终值 1 (100 ...
- [转帖]UsingDiskspdforSQLServer --- 改天做下练习 官方文档.
Using DiskSpd in SQL Server environments Writer: Robert Beene Contributors: Jose Barreto, Ramu Konid ...
- [转帖]Linux 下 DD 命令的使用详解
https://blog.csdn.net/noviblue/article/details/56012275 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注 ...
- 微信小程序 功能函数 把数字1,2,3,4换成春,夏,秋,冬
let season =‘1,2,3’; // console.log(season.length) if (season){ if (season.length==1){ seasonChe1=se ...
- python调用docker API(CentOS6.5)
一 环境背景 python-2.7.8 docker 版本 1.15 (*yum安装为1.14版本,需升级为1.15,详见后续步骤) 二 获取Docker容器指标[指标可行性分析见笔记:] CPU : ...
- override toString() function for TreeNode to output OJ's Binary Tree Serialization
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } @Override publ ...