【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库

这篇具有很好参考价值的文章主要介绍了【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

【微服务实战之Docker容器】第一章-下载及安装



坑:容器卷记得加入以下命令配置

--privileged=true

Docker挂载主机目录访问如果出现cannot open directory .: Permission denied解决办法:
在挂载目录后多加一个–privileged=true参数即可 如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。

是个啥?

一句话:有点类似我们Redis里面的rdb和aof文件
将docker容器内的数据保存进宿主机的磁盘中
运行一个带有容器卷存储功能的容器实例
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
参照上章的运行私服容器:

 docker run -d -p 5000:5000  -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry

主要目的是为了防止重要资料丢失,资料存储在宿主机上

能干啥?

将运用与运行的环境打包镜像,run后形成容器实例运行 ,但是我们对数据的要求希望是持久化的 Docker容器产生的数据,如果不备份,那么当容器实例删除后,容器内的数据自然也就没有了。
为了能保存数据在docker中我们使用卷。
特点:
1:数据卷可在容器之间共享或重用数据
2:卷中的更改可以直接实时生效,爽
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止

基本的命令

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

查看是否挂载成功,使用以下命令查看容器所有的配置,然后找到Mounts

 docker inspect 容器ID  

【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库,微服务,docker,架构

这种方式实现的数据卷绑定,容器(注意不是镜像)与宿主机会持久绑定,当容器重启时这种绑定关系依然存在,感兴趣的小伙伴可以自己尝试一下。
先启动linux容器绑定卷–》在容器内对应目录下创建文件–》在容器外对应目录下创建文件–》分别在容器内外查看对应目录–》把容器停止–》在容器外创建文件–》把容器通过id重新启动–》查看容器内文件
O(∩_∩)O,依然一致

读写规则映射添加说明

有时需要只允许容器读取,不允许容器写入

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

ro = read only(只读)
docker默认的是rw,可读可写

卷的继承和共享

–volumes-from 父类

docker run -it  --privileged=true --volumes-from 父类  --name u2 ubuntu

这条命令可以实现容器间的卷继承,这种方式可以实现容器间的文件共享,我们测试一下

docker run -it --privileged=true -v /dockerdir:/tmp/testdocker --name u1  ubuntu

启动一个名为u1的ubuntu容器,绑定上卷,进入到u1容器的/tmp/testdocker目录下,创建一个名为u1.txt的文件

touch u1.txt

进入主机的/dockerdir/下,发现已有文件。
然后再使用命令,启动一个u2,继承u1的卷

docker run -it  --privileged=true --volumes-from u1  --name u2 ubuntu

然后进入到u2的/tmp/testdocker目录下,发现也有对应文件
【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库,微服务,docker,架构
然后使用u2创建一个u2.txt

touch u2.txt

到u1下发现也已经有了,这就实现了文件的共享
接着我们把u1和u2都停掉,重启u2

docker stop u1
docker stop u2
docker start u2

接着进入u2的命令行界面

docker exec -it u2 /bin/bash

发现文件依然存在

【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库,微服务,docker,架构
这说明了docker的卷继承是永久性的,不会随着容器的重启而消失。
大家可以自己测试一下容器的删除是否会对此有影响。

docker rm u1

(多敲,命令才会熟练)

今天就到这里啦😊文章来源地址https://www.toymoban.com/news/detail-732327.html

到了这里,关于【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [golang gin框架] 40.Gin商城项目-微服务实战之Captcha验证码微服务

    本次内容需要 gin框架基础知识, golang微服务基础知识才能更好理解 在前面,讲解了微服务的架构等,这里,来讲解前面商城项目的 Captcha验证码 微服务 ,captcha验证码功能在前台,后端 都要用到 ,可以把它 抽离出来 ,做成微服务功能 编辑 这个验证码功能封装代码captcha.go如下: 把这个

    2024年02月16日
    浏览(39)
  • 第四章 Docker的网络通信(通信模式2)

    4.32 host模式      在使用host模式时,容器与宿主机共享同一个网络命名空间,容器的IP地址与宿主机的 IP地址相同。如果宿主机具有公网的IP 地址,则容器也拥有这个公网的IP 地址。即这时容 器可以直接使用宿主机的IP 地址与外界进行通信,且容器内服务的端口也可以直接使

    2024年02月05日
    浏览(43)
  • [golang gin框架] 45.Gin商城项目-微服务实战之后台Rbac微服务之角色权限关联

    角色和权限的关联关系在前面文章中有讲解,见[golang gin框架] 14.Gin 商城项目-RBAC管理之角色和权限关联,角色授权,在这里通过微服务来实现 角色对权限的授权 操作,这里要实现的有两个功能,一个是进入授权,另一个是,授权提交操作,页面如下:  这里需要在proto/rbacRole.proto中增加

    2024年02月14日
    浏览(55)
  • [golang gin框架] 42.Gin商城项目-微服务实战之后台Rbac微服务角色增删改查微服务

    上一节讲解了后台Rbac微服务用户登录功能以及Gorm数据库配置单独抽离,Consul配置单独抽离,这一节讲解 后台Rbac微服务 角色 增删改查微服务 功能,Rbac微服务角色增删改查微服务和 后 台Rbac用户登录微服务 是属于 同一个Rbac微服务 的 不同子微服务功能 ,为了区分不同子微

    2024年02月15日
    浏览(39)
  • [golang gin框架] 44.Gin商城项目-微服务实战之后台Rbac微服务之权限的增删改查微服务

    上一节讲解了[golang gin框架] 43.Gin商城项目-微服务实战之后台Rbac微服务之管理员的增删改查以及管理员和角色关联,这里讲解权限管理Rbac微服务权限的增删改查微服务 要实现权限的增删改查,就需要创建对应的模型,故在server/rbac/models下创建Access.go模型文件,参考[golang gin框架]

    2024年02月14日
    浏览(41)
  • 《微服务实战》 第十四章 RabbitMQ应用

    第十六章 Spring cloud stream应用 第十五章 RabbitMQ 延迟队列 第十四章 RabbitMQ应用 一般MQ用于系统解耦、削峰使用,常见于微服务、业务活动等场景。 RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。 Producer:生产者,就是投递消息的一方。消息一般可

    2024年02月06日
    浏览(45)
  • [golang gin框架] 43.Gin商城项目-微服务实战之后台Rbac微服务之管理员的增删改查以及管理员和角色关联

    上一节讲解了后台Rbac微服务角色增删改查微服务,这里讲解权限管理Rbac微服务管理员的增删改查微服务以及管理员和角色关联微服务功能 要实现管理员的增删改查,就需要创建对应的模型,故在server/rbac/models下创建manager.go模型文件,参考[golang gin框架] 14.Gin 商城项目-RBAC管理代码

    2024年02月14日
    浏览(44)
  • 第四章 Text

    在本章中,您将学习如何在页面上绘制文本。 绘图文本是 PDF 图形中最复杂的部分,但它也是帮助 PDF 击败竞争对手成为当今国际标准的原因。 当其他原始播放器将文本转换为光栅图像或矢量路径(以保持视觉完整性)时,PDF 的发明者知道用户需要可以搜索和复制的文本,而

    2024年02月06日
    浏览(46)
  • 第四章 RPC 调用

    通过以上案例我们发现,Http请求调用服务实例属实过于麻烦。其实对于请求同一个服务,很多步骤都是相同的,例如:服务名,地址,httpClient 创建步骤等。 RPC的出现,就是为了解决这一问题。 RPC: 即我们常说的远程过程调用,就是像调用本地方法一样调用远程方法,通信协

    2024年02月04日
    浏览(49)
  • 四,Eureka 第四章

           2.3.4修改主启动类 标注为Eureka客户端           springcloud-eureka-sever-7001 springcloud-eureka-sever-7001   springcloud-eureka-sever003           5.25编写PaymentMapper接口   5.    

    2024年02月15日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包