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 ...
随机推荐
- linux简单命令常用随记
//查看网络信息 ifconfig //修改ip地址 ifconfig eth0 123.123.123.123 netmask 255.255.255.0 //网关设置 route add defa ...
- 针对网站的UI分析
PM对项目所有功能的把握,特别是UI 最差的UI,体现了团队的组织架构.其次,体现了产品的内部结构.最好,体现了用户的自然需求. 对于几种浏览器分别进行UI分析, (1)360的界面如今看来比较大众化 ...
- mysql 修改语句及耗时
1.含有某串字母的字段替换: update imagetable set imageID = replace(imageID, 'ZH0211001', 'ZH4111001') 只要imageID含 ...
- vs2013 CodeLens
那东西叫 CodeLens 只有VS2013 旗舰版 (update 2及以上) 才可以用,高级版 专业版都没有.如何打开CodeLens呢?在VS菜单栏 >> 工具 >> ...
- bata1
目录 组员情况 组员1(组长):胡绪佩 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团 ...
- Android界面设计适配不同屏幕的尺寸和密度解读
Android是运行在各种提供不同的屏幕尺寸和密度的设备.Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面. 同时,该系统提供了API,允 ...
- Week2-作业1——关于阅读《构建之法》第1、2、16章的疑问与感悟
关于阅读<构建之法>第1.2.16章的疑问与感悟 术语解释: 第2章,23页 什么是代码覆盖率? ———————————————————— 在测试中的代码覆盖率是指,你运行测试用例后,走过 ...
- struts2的运行原理以及底层的工作机制
1 请求,请求路径是/login(发起请求,被filter拦截) 2 DispatcherFilter 3 获取当前请求的路径 通过request对象 request.getServletPath 4 ...
- [cnbeta] 波音系列飞机价格。。。
https://www.cnbeta.com/articles/tech/786745.htm 单价最便宜的是波音737-700,为0.858亿美元(约合5.96亿元). 评论网友调侃,“你家能满40 ...
- 删除log日志中包含某个字符的行
sed -i '/{Str}/d' abc.txt 假如你的log日志中某行有sleep字符,直接输入命令: sed -i '/sleep/d' log.log 如果删除的是一个变量的值,假如是var ...