Docker学习(二)

简介: Docker学习(二)

容器数据卷

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时刪除其挂载的数据卷

特点:

1:数据卷可在容器之间共享或重用数据


2: 卷中的更改可以直接生效


3:数据卷中的更改不会包含在镜像的更新中


4:数据卷的生命周期一直持续到没有容器使用它为止


容器内添加:


一、直接命令添加


docker run -it -v /宿主机绝对路径目录:/容器内目录  镜像名

docker run -it -v /myDataVolume:/dataVolumeContainer centos

该命令会在宿主机创建myDataVolume目录,与容器centos中创建目录dataVolumeContainer,并实现数据同步,就算容器关闭了,宿主机下的myDataVolume目录下的文件发生变化,centos容器再次启动后dataVolumeContainer会再次同步到与宿主机的数据一致。


如果出现cannot open directory :Permission denied错误。


在挂在目录后多加一个--privileged=true参数即可


添加权限

 docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos

容器只有读的权限

DockerFile方法,创建脚本

#volume test
FROM  centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finidhed,--------sccess"
CMD /bin/bash

脚本生成镜像

-f指定脚本位置,-t指定镜像的名称和版本号

docker build -f /mydocker/Dockerfile -t lq/centos .

运行

docker run -it 【容器id】 /bin/bash

我们可以看到这个容器里面有两个容器卷的目录

20190318111358206.png

在宿主机上使用docker inspect [容器id]可以查看与容器同步的目录。


一般在/var/lib/docker/volumes/目录下


通过之前新建的镜像来实现数据共享,通过镜像实例出dc01、dc02、dc03  3个容器


启动镜像dc01


docker run -it --name dc01 lq/centos


在dataVolumeContainer2中新增内容


dc02和dc03继承自dc01


--volumes-from


docker run -it --name dc02 --volumes-from dc01 lq/centos


docker run -it --name dc03 --volumes-from dc01 lq/centos


分别在在dataVolumeContainer2中新增内容


回到dc01可以看到02/03各自添加的都能共享


删除dc01,dc2修改后dc03可以访问


删除dc02后dc03可以访问


新增dc04继承dc03在删除dc03


结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器去使用它为止


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
2月前
|
运维 虚拟化 开发者
Docker-全面详解(学习总结---从入门到深化)
Docker-全面详解(学习总结---从入门到深化)
48 1
|
5月前
|
运维 Kubernetes Cloud Native
【k8s 系列】k8s 学习三,docker回顾,k8s 起航
【k8s 系列】k8s 学习三,docker回顾,k8s 起航
|
3月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
119 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
5月前
|
Java Go 虚拟化
【Docker 系列】docker 学习十一,docker 总结和面试题整理
【Docker 系列】docker 学习十一,docker 总结和面试题整理
|
1天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
3 0
|
2月前
|
Ubuntu 应用服务中间件 Docker
docker-学习
docker-学习
22 0
|
2月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
53 0
|
3月前
|
存储 运维 Linux
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
在使用Docker时,管理维护工作可能会显得复杂。然而,实际上,Docker提供了许多便捷且人性化的工具,这些工具的使用技巧可以大大简化维护工作,并提升效率。通过掌握这些技巧,你不仅能够更轻松地管理Docker环境,还能展现出专业的能力。接下来我们就给大家介绍一下对于我在工作当中对于Docker容器使用的技术实战总结
48 2
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
|
3月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)(下)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
30 0
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)(上)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
69 0