首页 > 数据库 >Docker部署Redis集群----第一节(docker初认识)

Docker部署Redis集群----第一节(docker初认识)

时间:2023-10-27 16:23:55浏览次数:37  
标签:容器 环境 虚拟机 Redis ---- 镜像 Docker 运行

1、Docker是什么?

docker是开源的应用容器引擎,我们可以理解为一个轻量级的“虚拟机”,开发者可以打包自己开发的应用或程序到一个可移植的容器中去,然后发布到任何流行的linux机器上,由此可见docker为我们的开发和部署带来了极大的方便和稳定性,我们还有什么理由错误它呢?

2、为什么要用docker?

作为当前一种火爆而新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。具体体现如下:

更高效的利用系统资源

我们可以这样去理解,因为容器不需要进行硬件虚拟化以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高,无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

更快速的启动时间

传统的虚拟机技术启动应用服务时基本上处在分钟级别,因为而我们现在所认识到的Docker容器是直接运行于宿主内核,不需要大动干戈将完整的操作系统,【举个不恰当的例子,手动挡和自动挡汽车,手动挡需要一个完整的操作步骤->踩离合->踩刹车->挂一档->拉手刹->抬离合->抬刹车相当于把内部结构都跑了一遍屁颠地转了一圈,而自动挡就是踩刹车->挂挡->拉手刹->起步 走你,运行速度可见一斑。只是个例子希望学习的小伙伴能理解】就可以做到秒级、甚至不夸张的说毫秒级的启动时间,大大的节约了开发、测试、部署时间。

一致的运行环境

做开发的程序员应该都知道“开发过程中环境一致的重要性”。期很大的程度上是由于开发环境、测试环境以及生产环境的不一致而导致有些“错误”,我们熟称“bug”并没有在开发过程中被捕获发觉,而Docker的镜像提供了除内核外完整的运行时环境,确保了应用环境的一致性,从而极大的避免了,程序员与产品经理之间的“扫雷矛盾”,【FXXX,这不是我写的代码】、【是不是你写的代码,本地没有测试吗?】等等诸如此类的问题。

持续缴费和环境部署

对开发和运维的工程师来说,最最希望的就是一次创建或配置,可以在任意的服务上运行,使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署代码和服务,开发人员就可以通过Dockerfile来进行构建镜像,并结合持续集成系统进行测试,而运维人员则可以直接在生产环境中快速完成部署该镜像,甚至是结合持续部署系统进行自动化部署。

而且使用Dockerfile使镜像构建透明化,不仅仅是开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需要的条件,帮助更好的生成环境中部署该镜像。

更轻松的迁移

由于Docker确保了执行环境的一致性,从而使得我们的应用的迁移变得更加容易。Docker可以在很多平台上运行所需的服务,不管是“物理机“也好”虚拟机“也罢甚至是“公有云“、“私有云“乃至”笔记本“,其运行的结果都是一致的,因此用户可以很轻松的将在一个平台运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

更轻松的维护和扩展

Docker使用的分层存储以及镜像的技术,使得应用重复的部分进行复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也同样变得简单明了。此外Docker团队同各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境中使用,又可以作为基础进一步定制化,大大的降低了应用服务的镜像制作成本。

对比传统虚拟机总结
特性启动硬盘使用性能系统支持量
虚拟机 分钟级 一般为 GB 一般几十个
容器 秒级 一般为 MB 接近原生 单机支持上千个容器
Docker的主要用途:
  • 提供一次性环境,例如:本地测试其他软件、持续集成的时候提供单元测试和构建的环境;
  • 提供弹性的与服务,因此Docker容器可以随时开关,最适合动态扩容和缩放不过了;
  • 我们一直常说的微服务架构,Docker就是为微服务而生的组建微服务架构,通过多个容器,一台机器可以运行多个服务,因此在本机就可以模拟出微服务架构。
Docker基本概念

Docker三大法器:镜像、容器、仓库。

Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接pull他人构建好的镜像直接使用

  • 镜像:Docker镜像就是一个“只读”的模板,可以用来创建Docker容器。例如:一个镜像可以包含一个完整的Centos操作系统环境,里面仅安装了用户所需要的其他应用程序。
  • 容器:从创建镜像并运行其实例,它可以被启动、开始、停止、删除每个容器都是相互独立,相互隔离的、保证安全的平台。对应的虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和运行在上面的应用。
  • 仓库:是集中存放镜像的地方有时候会把与注册服务器的概念弄混淆,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像。其仓库分为:公开仓库(public)和私有仓库(private)两种形式。最大的公开仓库是Docker Hub,存放了庞大的镜像供用户下载。

标签:容器,环境,虚拟机,Redis,----,镜像,Docker,运行
From: https://www.cnblogs.com/wyj1997/p/17792615.html

相关文章

  • 行为型模式(一) 责任链模式
    责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象能够处理它为止。角色:抽象处理者具体处理者客户端fromabcimportABCMeta,abstractmethodclassManager(metaclass=ABCMeta......
  • magicbane/magicbox 修改基础
    MYSQL:修改数据库,解除部分限制,修改角色数据magicbane:修改工具"mbEditorPro" 可以从官网下载. 功能 解压/压缩 .cache 文件,修改客户端数据,解除限制之类的......
  • @Resource注解
    @Resource注解是Java平台提供的注解,用于进行依赖注入。当你在类中的字段或属性上使用@Resource注解时,Java容器会自动为该字段或属性注入一个合适的Bean对象。@Resource注解可以标注在字段或属性的setter方法上。如果标注在字段上,则会自动注入与该字段类型相匹配的Bean对象。如果......
  • 谷歌浏览器置顶了,很麻烦,取消谷歌浏览器置顶
    第一步:右击任务栏-属性-勾选“自动隐藏任务栏” ,关闭chrome浏览器;第二步:重新打开chrome浏览器,将鼠标移到底部后任务栏显示出来,右键属性,把“自动隐藏任务栏”的勾点去;......
  • github官网打不开或访问慢的解决办法
    1)获取github官网ip方法就是打开cmd,然后pinggithub.com2)配置hosts文件,绕过DNS解析接下来,我们只需要打开电脑C:\Windows\System32\drivers\etc下的hosts文件编辑(需要管理员权限,右键,管理员权限打开),新增如下一行配置: 复制代码20.205.243.166github.com注意ip和域名之间......
  • 第四章苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接
    代码#include<stdio.h>#include<stdlib.h>#include<pthread.h>#defineN4intA[N][N],sum[N];void*func(voidarg){intj,row;pthread_ttid=pthread_self();row=(int)arg;printf("Thread%d[%lu]computessumofrow%d\n"......
  • 如何设置模型的粗糙质感?
    1、粗糙贴图的原理粗糙贴图(RoughnessMap)是一种用于模拟物体表面粗糙程度的贴图技术。它通过控制光线在物体表面的散射程度来实现不同粗糙度的效果。粗糙贴图通常使用灰度图像来表示不同部分的粗糙度,白色表示较光滑的表面,黑色表示较粗糙的表面。粗糙贴图的原理可以简单地描述为......
  • CF1520
    CF1520\(div3\)信心场!DoNotBeDistracted!开一个\(vis\)数组即可只要连续两个字符不相同就将前一个打上标记那么我们访问任意一个具有标记的节点就判断无解即可#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineinlinline#defineebempl......
  • paddleDection安装使用
    1,安装环境首先要安装paddlepaddle:安装方式的链接,各种显卡驱动,cuda和cudnn不多说比较基础我本身是在虚拟环境里安装的,所以虚拟环境安装也不影响它调用显卡资源查看paddle是否安装成功:>>>importpaddle>>>paddle.utils.run_check()安装paddleDection:gitclonehttps://g......
  • 正则快速入门
    1.标识 2.匹配规则  3.连续匹配规则a)多个规则可以连续书写,用以匹配多个字符,例如:  /\d[a-zA-Z]///匹配以1个数字紧跟一个字母b)若多个规则是一个或者的关系,使用|分割/\d[a-zA-Z]|[a-zA-Z]\d///匹配以1个数字紧跟一个字母,或者一个字母......