kubernetes Spring Cloud 微服务架构— (6)Kubernetes spring cloud 微服务-数据卷管理

简介: 第 6 章 数据卷管理 本章节主要介绍 Docker 数据卷的使用场景; 复制宿主机文件到容器中,怎样创建数据卷,以及数据卷的权限管理。

6.0 数据卷特点

数据卷是一个可供一个或多个容器使用的本地文件目录,主要特性如下:

1)数据卷可以在容器之间共享和重用

2)对数据卷的修改会立即生效

3)对数据卷的更新,不会影响镜像

4)数据卷默认会一直存在,即使容器被删除提示:数据卷的使用,类似于 Linux 下对目录进行 mount。

6.1 使用场景

1)   程序目录

2)   程序日志

3)   集群数据目录

 

6.2 数据卷操作

#从容器内拷贝文件到主机上

6.2.1 语法:


/

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 
#将容器的/test.txt 拷贝到主机的 /tmp目录中
[root@localhost ~]# docker run -it --name c1 -h c1-test centos /bin/bash 
[root@c1 /]# echo "docker" > /test.txt 
#cp 也可以拷贝目录 
[root@master ~]# docker cp c1:/test.txt /tmp/ 
[root@master ~]# ls /tmp/test.txt  
/tmp/test.txt
[root@master ~]# cat /tmp/test.txt docker

6.2.2 #推送文件至容器/tmp 目录下,通过容器ID

[root@docker ~]# echo 'ceshi' >ceshi.txt 
#复制本机的 ceshi.txt 文件到容器 c06fc46a1176 
#注意复制到容器中的文件与挂载本机的目录到容器有不同, 如果是挂载的模式,在本机目录写入文件那么也会同步到容器, 如果是复制文件,则内容不会同步
[root@master ~]# docker cp ./ceshi.txt c1:/tmp


/

 

6.2.3 #检查

[root@docker   ~]# docker attach c1   进入容器
[root@docker ~]# echo 'ceshi' >ceshi.txt 
#复制本机的 ceshi.txt 文件到容器 c06fc46a1176 
#注意复制到容器中的文件与挂载本机的目录到容器有不同, 如果是挂载的模式,在本机目录写入文件那么也会同步到容器, 如果是复制文件,则内容不会同步
[root@master ~]# docker cp ./ceshi.txt c1:/tmp 

6.3 创建数据卷

使用docker run 命令中使用-v 标识来给容器内添加一个数据卷,也可以在一次docker run 命令中, 多次使用-v 标识挂载多个数据卷。


数据卷的使用场景

 

 

6.3.1 创建一个新容器并挂载本地目录

[root@master ~]# echo "from   local txt" > /mnt/fromlocal.txt #宿主机操作 
#将本地目录/mnt 挂载到容器的/mnt 
[root@docker ~]# docker run -it -v   /mnt/:/mnt centos /bin/bash 
[root@97f04ce38226 mnt]# cat   fromlocal.txt  from local txt 
#在宿主机/mnt 创建目录, 会在容器挂载目录中实时看到

6.4 数据卷权限设置

docker 默认情况下是对数据卷有读写权限,但是通过这样的方式让数据卷只读

[root@demo ~]# docker run -it --name   centos-ro -v /mnt:/mnt:ro  centos   /bin/bash #创建文件报错 
[root@875aaa01cccc mnt]# touch t1.txt touch:   cannot touch 't1.txt': Read-only file system


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1727 3
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1634 0
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
1587 0
|
前端开发 Java 数据库
微服务——SpringBoot使用归纳——Spring Boot集成Thymeleaf模板引擎——Thymeleaf 介绍
本课介绍Spring Boot集成Thymeleaf模板引擎。Thymeleaf是一款现代服务器端Java模板引擎,支持Web和独立环境,可实现自然模板开发,便于团队协作。与传统JSP不同,Thymeleaf模板可以直接在浏览器中打开,方便前端人员查看静态原型。通过在HTML标签中添加扩展属性(如`th:text`),Thymeleaf能够在服务运行时动态替换内容,展示数据库中的数据,同时兼容静态页面展示,为开发带来灵活性和便利性。
688 0
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
1324 0
|
Java 测试技术 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
555 0
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
795 4

推荐镜像

更多