docker19.03使用数据卷
一,查看当前的docker版本
[root@localhost data]# docker --version
Docker version 19.03.8, build afacb8b
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看当前的数据卷
使用 docker volume ls 命令
[root@localhost data]# docker volume ls
DRIVER VOLUME NAME
三,创建一个数据卷,名字叫 zk-vol
使用 docker volume create 命令
[root@localhost data]# docker volume create zk-vol
zk-vol [root@localhost data]# docker volume ls
DRIVER VOLUME NAME
local zk-vol
四,查看数据卷的详细信息
使用 docker volume inspect 命令
[root@localhost data]# docker volume inspect zk-vol
[
{
"CreatedAt": "2020-03-18T15:46:47+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/data/docker/volumes/zk-vol/_data",
"Name": "zk-vol",
"Options": {},
"Scope": "local"
}
]
说明:注意Mountpoint所标识的目录是volume在宿主机上的目录
五,运行一个容器,挂载我们所创建的数据卷:
1,我们在/data/docker/volumes/zk-vol/_data目录下创建一个文件a.txt,
内容是aaa
[root@localhost data]# cd /data/docker/volumes/zk-vol/_data
[root@localhost _data]# vi a.txt
2,启动后查看数据卷
[root@localhost _data]# docker run --name testvol --privileged --hostname=testvol -itd --mount src=zk-vol,dst=/data/zk-vol centos /usr/sbin/init
6f2272f22ac708276bba0a26aeb0b3e04dd9dba308d1c07b9527fa28da1ef756
[root@localhost _data]# docker exec -it testvol /bin/bash
[root@testvol /]# cd /data/zk-vol/
[root@testvol zk-vol]# more a.txt
aaa
说明:也可以使用 -v参数进行挂载:
[root@localhost _data]# docker run --name testvol --privileged --hostname=testvol -itd -v zk-vol:/data/zk-vol centos /usr/sbin/init
六,删除数据卷:
使用 docker volume rm 命令
[root@localhost _data]# docker volume ls
DRIVER VOLUME NAME
local logs
local logs2
local zk-vol
[root@localhost _data]# docker volume rm logs
logs
[root@localhost _data]# docker volume rm logs2
logs2
[root@localhost _data]# docker volume ls
DRIVER VOLUME NAME
local zk-vol
七,容器数据卷:新运行一个容器,挂载三个目录或文件:
[root@localhost docker]# docker run -itd --name dbvolume --hostname dbvolume -v /etc/localtime:/etc/localtime -v /data/nfs:/data/nfs -v /data/rsync:/data/rsync centos:latest
56efd12b38ab3d5b65606782b8800a027b4aad594045f1500a3b3d440ce4d756
命名为: dbvolume
八,在宿主机中查看与容器数据卷dbvolume挂载相关的信息:
[root@localhost docker]# docker inspect dbvolume
其中:
HostConfig下面的Binds保存有挂载信息
"HostConfig": {
"Binds": [
"/etc/localtime:/etc/localtime",
"/data/nfs:/data/nfs",
"/data/rsync:/data/rsync"
],
Mounts下面也有这三个挂载目录的信息
"Mounts": [
{
"Type": "bind",
"Source": "/data/rsync",
"Destination": "/data/rsync",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/etc/localtime",
"Destination": "/etc/localtime",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/data/nfs",
"Destination": "/data/nfs",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
九,新启动另一个容器usevolume,并挂载容器数据卷:
[root@localhost docker]# docker run --hostname usevolume --name usevolume --volumes-from dbvolume -itd --privileged centos:latest /usr/sbin/init
57926ab056fcbcb8b679bf167bcf5fd9368a4f958445ffb84c3bccc474013441
说明:--volumes-from dbvolume
--volumes-from 用来加载一个容器数据卷
十,查看新容器中的挂载信息:
[root@localhost docker]# docker inspect usevolume
"HostConfig": {
"Binds": null,
Binds为空
"Mounts": [
{
"Type": "bind",
"Source": "/etc/localtime",
"Destination": "/etc/localtime",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/data/nfs",
"Destination": "/data/nfs",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/data/rsync",
"Destination": "/data/rsync",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
但Mounts下各个目录已挂载
十一,测试在dbvolume和usevolume分别写入:
1,dbvolume中
[root@dbvolume nfs]# cd /data/nfs/test
[root@dbvolume test]# vi a.txt
[root@dbvolume test]# more a.txt
aa
2,usevolume中
[root@usevolume nfs]# cd /data/nfs/test
[root@usevolume test]# vi b.txt
[root@usevolume test]# more b.txt
bb
[root@usevolume test]# more a.txt
aa
3,回到dbvolume中
[root@dbvolume test]# more b.txt
bb
可见从两个容器中写入都不存在问题
十二,如果数据卷容器被停止,使用它的容器还能否正常工作?
1,停止dbvolume
[root@localhost docker]# docker stop dbvolume
dbvolume
[root@localhost docker]# docker ps -a | grep dbvolume
56efd12b38ab centos:latest "/bin/bash" 26 minutes ago Exited (0) 52 seconds ago dbvolume
2,到usevolume中测试读写
[root@usevolume nfs]# cd /data/nfs/test
[root@usevolume test]# vi c.txt
[root@usevolume test]# more c.txt
cc
3,从宿主机中查看c.txt是否成功写入:
[root@localhost docker]# cd /data/nfs/test/
[root@localhost test]# more c.txt
cc
4,结论:数据卷容器被停止,使用它的容器依然可以正常工作
docker19.03使用数据卷的更多相关文章
- docker-5-容器数据卷
1.是什么 一句话:有点类似我们Redis里面的rdb和aof文件 先来看看Docker的理念: * 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 ...
- Docker容器数据卷介绍和命令
是什么 一句话:有点类似我们Redis里面的rdb和aof文件 先来看看Docker的理念: * 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 * ...
- docker系列(四):数据卷
1 引言 容器就相当于一个简易的操作系统,我们在上面部署我们的环境,不可避免地产生一些数据,但是,可能由于断电等等原因,容器退出了,那么之前容器中的数据就不符存在,则往往不是我们想要的,更多的,我们是 ...
- docker数据卷之持久化操作
docker Docker三大核心组件:(运行起来的镜像就可以称作容器) Docker 镜像--Dcoker images:类比与类 Docker 仓库--Docker registeries: Do ...
- 5、docker容器数据卷: -v添加共享传递容器数据卷
1.是什么 1.docker理念 先来看看Docker的理念:* 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的* 容器之间希望有可能共享数据 2.保 ...
- Docker容器数据卷volumes-from
定义4个终端: 终端host终端container dc01终端container dc02终端container dc03各个容器之间的关系: 1.启动一个父容器dc01启动一个父容器dc01,并在 ...
- Docker数据管理-数据卷 data volumes和数据卷容器data volumes containers的使用详解
此文来源于:https://yq.aliyun.com/ziliao/43471 参考原文件之外,做了些修改. Volume数据卷是Docker的一个重要概念.数据卷是可供一个或多个容器使用的特殊目录 ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
- 『现学现忘』Docker基础 — 29、Docker容器数据卷的应用
目录 1.验证容器和宿主机之间数据共享 2.容器停止退出后,主机修改后数据是否同步 3.带只读权限的挂载数据卷 1.验证容器和宿主机之间数据共享 通过上面的操作,接下来我们演示一下通过数据卷的挂载,实 ...
随机推荐
- python之cookie与session
cookie概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器 ...
- sql注入 --显错注入
前提知识 数据库:就是将大量数据把保存起来,通过计算机加工而成的可以高效访问数据库的数据集合数据库结构:库:就是一堆表组成的数据集合表:类似 Excel,由行和列组成的二维表字段:表中的列称为字段记录 ...
- [程序员代码面试指南]链表问题-将单链表的每k个节点之间逆序
题目描述 给定一个单链表的表头节点head,实现一个调整单链表的函数,是的每k个节点之间逆序,如果最后不够k个节点一组,则不调整最后几个节点. 题解 内部函数reverse实现链表beg到end的翻转 ...
- 高可用集群之keepalived+lvs实战
keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...
- 1.KafKa-介绍
- python-scrapy框架初探
内置支持 selecting and extracting 使用扩展的CSS选择器和XPath表达式从HTML/XML源中获取数据,并使用正则表达式提取助手方法. interactive shell ...
- HashMap,HashSet,HashTable,LinkedHashMap,LinkedHashSet,ArrayList,LinkedList,ConcurrentHashMap,Vector 区别
ConcurrentHashMap是弱一致性,也就是说遍历过程中其他线程可能对链表结构做了调整,因此get和containsKey返回的可能是过时的数据 ConcurrentHashMap是基于分段锁 ...
- 后端开发实践:Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...
- C++练习案例1.计算机类(利用多态实现)
c++简单计算机类 简介 大家好,这里是天天like的博客,这是我发的第一篇随笔,用来记录我的学习日程,大家可以相互学习,多多交流,感谢 今天我要记录的随笔是在学习c++多态的知识点练习改进的一个案例 ...
- python3的基础数据类型
看了很多文档,想自己整理一下关于python的数据类型.说干就干,下面接上. 首先,了解 常量与变量. 常量是什么?常量是指在整个程序操作过程中其值保持不变的数据: 变量是什么?变量即在程序运行过程中 ...