码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 《docker基础篇》1.Docker简介,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下


    在这里插入图片描述

    文章目录

    • 1.Docker简介
      • 1.1Docker是什么
        • 1.1.1问题:为什么会有docker出现?
        • 1.1.2Docker理念
        • 1.1.3一句话
      • 1.2容器与虚拟机比较
        • 1.2.1容器发展简史
        • 1.2.2传统虚拟机技术
        • 1.2.3容器虚拟化技术
        • 1.2.4对比
      • 1.3能干嘛
        • 1.3.1技术职级变化
        • 1.3.2开发/运维(DevOps)新一代开发工程师
        • 1.3.3哪些企业在使用
      • 1.4去哪下
    • 本人其他相关文章链接

    1.Docker简介

    1.1Docker是什么

    在这里插入图片描述

    1.1.1问题:为什么会有docker出现?

    假定您在开发一个尚硅谷的谷粒商城,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。

    问题:请问您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?

    答案:就是使用容器。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----系统平滑移植,容器虚拟化技术。

    环境配置相当麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
    在这里插入图片描述
    之前在服务器配置一个应用的运行环境,要安装各种软件,就拿尚硅谷电商项目的环境来说,Java/RabbitMQ/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。

    传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式,开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。

    1.1.2Docker理念

    Docker是基于Go语言实现的云开源项目。
    Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。
    在这里插入图片描述
    Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

    1.1.3一句话

    解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

    1.2容器与虚拟机比较

    在这里插入图片描述

    1.2.1容器发展简史

    在这里插入图片描述
    在这里插入图片描述

    1.2.2传统虚拟机技术

    在这里插入图片描述
    在这里插入图片描述

    1.2.3容器虚拟化技术

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.2.4对比

    在这里插入图片描述

    1.3能干嘛

    在这里插入图片描述

    1.3.1技术职级变化

    coder -> programmer -> software engineer -> DevOps engineer

    1.3.2开发/运维(DevOps)新一代开发工程师

    1)一次构建、随处运行

    更快速的应用交付和部署

    传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

    更便捷的升级和扩缩容
    随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

    更简单的系统运维
    应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

    更高效的计算资源利用
     Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

    2)Docker应用场景

    在这里插入图片描述

    1.3.3哪些企业在使用

    新浪

    在这里插入图片描述
    在这里插入图片描述

    美团

    在这里插入图片描述

    蘑菇街

    在这里插入图片描述

    1.4去哪下

    在这里插入图片描述
    官网:docker官网:http://www.docker.com
    仓库:Docker Hub官网:https://hub.docker.com/

    本人其他相关文章链接

    1.《docker基础篇》1.Docker简介,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
    2.《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
    3.《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
    4.《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
    5.《docker基础篇:5.本地镜像发布到阿里云》
    6.《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
    7.《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
    8.《docker基础篇:Docker常规安装简介》包括docker常规安装总体步骤、安装tomcat、安装mysql、安装redis、安装nginx

  • 相关阅读:
    链路聚合_Eth-trunk
    【Java】面向对象程序设计 基础语法笔记
    数字孪生可视化在石油生产管理中的具体应用
    买的鱼丸怎么做好吃 鱼丸的家常做法介绍
    产品新人必看:入职前的准备及快速适应产品工作
    Bugly iOS自动导入符号表
    qt学习之旅--QToolBar的使用(一)
    《吉师作业》(1)之我是web手为啥让我学C
    日语
    从零开始:使用低代码平台开发OA系统的教程
  • 原文地址:https://blog.csdn.net/a924382407/article/details/126190172
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号