您现在的位置是:首页 > 正文

【SpringCloud-学习笔记】初识Docker

2024-04-01 00:01:09阅读 5

1. 项目部署的问题

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发、测试、生产环境有差异
    在这里插入图片描述

2. Docker

Docker如何解决依赖的兼容问题的?

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰
    在这里插入图片描述

不同环境的操作系统不同,Docker如何解决?我们先来了解下操作系统结构
在这里插入图片描述
内核与硬件交互,提供操作硬件的指令
系统应用封装内核指令为函数,便于程序员调用
用户程序基于系统函数库实现功能
在这里插入图片描述
Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异
在这里插入图片描述
Docker如何解决不同系统环境的问题?

  • Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行
    在这里插入图片描述
    Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
  • Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
  • Docker应用运行在容器中,使用沙箱机制,相互隔离

Docker如何解决开发、测试、生产环境有差异的问题

  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
    在这里插入图片描述

3. 总结

Docker是一个快速交付应用、运行应用的技术:

  1. 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  2. 运行时利用沙箱机制形成隔离容器,各个应用互不干扰
  3. 启动、移除都可以通过一行命令完成,方便快捷

4. Docker与虚拟机

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。
在这里插入图片描述
在这里插入图片描述

5. 总结

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

6. 镜像和容器

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
在这里插入图片描述

7. Docker和DockerHub

  • DockerHub:DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。
  • 国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。
    在这里插入图片描述

8. docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。
    在这里插入图片描述

9. 总结

镜像:

  • 将应用程序及其依赖、环境、配置打包在一起
    容器:
  • 镜像运行起来就是容器,一个镜像可以运行多个容器
    Docker结构:
  • 服务端:接收命令或远程请求,操作镜像或容器
  • 客户端:发送命令或者请求到Docker服务端
    DockerHub:
  • 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

10. 安装Docker

企业部署一般都是采用Linux操作系统,而其中又数CentOS发行版占比最多,因此我们在CentOS下安装Docker。
Centos7安装Docker

11. 总结

什么是Docker:

  • 帮助我们快速构建应用镜像、交付应用、运行应用的技术
    什么是镜像:
  • 将应用程序及其依赖、环境、配置打包在一起就是镜像
    什么是容器:
  • 镜像运行起来就是容器,一个镜像可以运行多个容器
    Docker工作流:
  • 构建自定义镜像或者从DockerRegistry拉取镜像
  • 根据镜像创建容器,并运行

网站文章

  • ros 机械臂学习之ros control 学习笔记 2

    joint_trajectory_controller 接着上篇笔记聊该控制器。 - 轨迹表示 控制器采用模板化的方式,可以支持多种轨迹表达方式。 默认情况下采用了样条曲线插值法。 插值法的大致分为以...

    2024-04-01 00:00:43
  • 如何保证高可用?docker架构拓扑图

    如何保证高可用?docker架构拓扑图

    架构筑基大家都知道,性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,如果想成为一名优秀的架构师,性能优化就是你必须思考的问题。所以性能优化专题从JVM底层原理到内存优...

    2024-04-01 00:00:36
  • FindNextFile函数

    一、问题描述 使用FindFirstFile与FindNextFile遍历指定文件夹时,获取不到该文件夹下的文件。 class CMySharedFile; bool GetAllFiles(LPCTSTR lpDir, std::set<CMySharedFile> files); ...... std::set<CMySharedF...

    2024-04-01 00:00:28
  • wordpress删除数据库中修订版本的文章数据

    wordpress删除数据库中修订版本的文章数据

    转载自 bcoder编程网 http://www.bcoder.cn/wordpress%e5%88%a0%e9%99%a4%e6%95%b0%e6%8d%ae%e5%ba%93%e4%b8%ad%e4%bf%ae%e8%ae%a2%e7%89%88%e6%9c%ac%e7%9a%84%e6%96%87%e7%ab%a0%e6%95%b0%e6%8d%ae/ 我们现在要做的就是删除wo

    2024-04-01 00:00:02
  • shell--正则表达式之awk

    一.awk工具的概述 在linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于shell脚本,完成各种自动化配置任务 二.awk的常见用法 awk的命令格式如下 awk 选项 ‘模式或条件 {编辑指令}’ 文件1 文件2... /...

    2024-03-31 23:59:55
  • -webkit-background-clip属性不生效问题

    -webkit-background-clip属性不生效问题

    将-webkit-text-fill-color改成color并且调整顺序。-webkit-background-clip属性不生效问题。试了好久,终于找到原因了,泪目( Ĭ ^ Ĭ )在浏览器勾选样式后又能够显示,排除浏览器不兼容。

    2024-03-31 23:59:51
  • kafka中的AR、ISR、LEO、HW分别是什么

    kafka中的AR、ISR、LEO、HW分别是什么

    AR: Assigned Replicas的缩写,是每个partition下所有副本(replicas)的统称; ISR: In-Sync Replicas的缩写,是指副本同步队列,ISR是AR中的一...

    2024-03-31 23:59:36
  • 从GPT到chatGPT(一):GPT1

    从GPT到chatGPT(一):GPT1

    GPT1,出自于OpenAI的论文,是最早的将transformer以多层堆叠的方式构成语言模型的模型,其出现时间早于BERT,但二者有一个最大的区别在于BERT只用的是transformer的enc...

    2024-03-31 23:59:11
  • 第四章 Android开发三大基石—Activity、Service和Handler(4)

    4.2 千变万化的服务-Service开发Service是Android系统中运行在后台、不和用户交互应用组件。它和Activity的级别差不多,只能在后台运行。每个Service必须在manifest文件中 通过来声明。4.2.1 Service的生命周期Service的生命周期并不像Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法,当

    2024-03-31 23:59:06
  • 活久见!AI巨佬为“人类灭绝论”正面开撕,Hinton吴恩达LeCun下场,马斯克强势围观...

    活久见!AI巨佬为“人类灭绝论”正面开撕,Hinton吴恩达LeCun下场,马斯克强势围观...

    鱼羊 丰色 发自 凹非寺量子位 | 公众号 QbitAI活久见,AI巨佬们撸起袖子线上“对喷”,一“架”直接干上热搜了。Big name一个接一个出现不说:吴恩达、Hinton、LeCun、哈萨比斯…...

    2024-03-31 23:58:59