当前位置: 首页 > news >正文

Docker01:概述与历史

Docker概述1

单机版Docker

  • Docker概述
  • Docker安装
  • Docker命令
    • 镜像命令
    • 容器命令
    • 操作命令
    • 。。。
  • Docker镜像
  • 容器数据卷
  • Dockerfile
  • Docker网络原理
  • IDEA 整合Docker

Docker集群

  • Docker compose
  • DOcker Swarm
  • Kubernetes(比整个docker学习时间长)
  • CI\CD Jenkins
    学习思想!

Docker概述2

Docker为什么出现?(工作中出现的问题)

  • 一款产品:开发-上线两套环境!应用环境,应用配置!
  • 开发–运维。问题:我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大?
  • 环境配置是十分的麻烦,每一个机器都要部署环境(集群 Redis、ES、 Hadoop…)!费时费力。
  • 发布一个项目(r+( Redis MySQL jdk ES)),项目能不能都带上环境安装打包!
  • 之前在服务器配置一个应用的环境 Redis MySQL jdk ES Hadoop,配置超麻烦了,不能够跨平台。
  • Windows,最后发布到 Linux!
  • 传统:开发jar,运维来做!
  • 现在:开发打包部署上线,一套流程做完!

Docker给以上的问题,提出了解决方案!

  • java-apk-发布(应用商店)–张三使用apk–安装即可用!
    请添加图片描述

  • java-…jar(环境)–打包项目带上环境(镜像) --( DEckert仓库:商店)–下载我们发布的镜像-直接运行即可!

  • 比如装windows系统,电脑里边自带一些软件,就是windows镜像

请添加图片描述

  • JRE – 多个 应用(端口冲突)— 原来都是交叉的!
  • 隔离: Dockert核心思想!打包装箱!每个箱子是互相隔离的。请添加图片描述
  • Docker通过隔离机制,可以将服务器利用到极致!

本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习!


Docker历史

2010年,几个搞1T的年轻人,就在美国成立了一家公司dotc1oud
做一些pass的云计算服务!LXC有关的容器技术!
他们将自己的技术(容器化技术)命名就是 Docker!
Docker刚刚诞生的时候,没有引起行业的注意! dotCloud,就活不下去!
开源
开发源代码!
2013年, Docker开源!
Dockeri越来越多的人发现了 docker的优点!火了, Docker每个月都会更新一个版本!
2014年4月9日, Docker1.0发布!
Docker为什么这么火?十分的轻巧!
在容器技术出来之前,我们都是使用虚拟机技术!
虚拟机:在 window中装一个 Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑! 笨重!
虚拟机也是属于虚拟化技术, Docker容器技术,也是一种虚拟化技术!

vm , linux centos原生镜像(一个电脑!)隔离,需要开启多个虚拟机!几G 启动需要几分钟
docker,隔离,镜像(最核心的环境大小 (命令+开机启动)4兆+ jdk+mysql)十分的小巧,运行镜像就可以了!小巧! 几个M 最小KB级别,秒级启动!

到现在,所有开发人员都必须要会 Docker!

聊聊Docker
Docker是基于Go语言的
官网:https://www.docker.com/
请添加图片描述

文档地址: https://docs.docker.com/ Docker的文档是超级详细的!
仓库https://hub.docker.com/


Docker能干啥

  • 传统虚拟机
    Lib–环境
    请添加图片描述
  • 容器化技术不是模拟一个完整的操作系统
    Lib–容器内部环境
    请添加图片描述

比较Docker和传统虚拟技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
  • 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

DevOps(开发、运维)

应用更快速的交付和部署
传统:一堆帮助文档,安装程序!
Docker:一键运行打包镜像发步测试!
更便捷的升级和扩缩容
使用了 Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像,扩展服务器A!服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的。
更高效的计算资源利用:
e.g. 1核2g的服务器!可以运行几十个redius
Docker是内核级别的虚拟化,可以再一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致!

  • 只要学不死,就往死里学!

相关文章:

  • 网站交换友情链接是否对SEO优化有帮助?
  • Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第10章 Vuex状态管理 10.1 Vuex基础应用
  • C++枚举
  • 动手学深度学习笔记-线性回归和softmax回归底层从零实现
  • 基于MATLAB的采样保持器的仿真
  • Qt之语言家的简单使用(一)(Qt翻译UI,Qt Linguist的使用,含源码+注释)
  • C++ STL --- vector类模拟实现
  • ROS基础学习
  • 《管理学》试卷
  • Redis 会被Dragonfly替代?
  • 【Linux】awk入门
  • 数据服务:B站数据服务的演进之路
  • linux篇【5】:环境变量,程序地址空间
  • PCL Kmeans点云聚类
  • 百万军中取上将首级如探囊取物, 千万行里改关键源码在弹指瞬间。 功能超强的程序编辑器!
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS 7 修改主机名
  • Docker入门(二) - Dockerfile
  • E-HPC支持多队列管理和自动伸缩
  • HTTP中的ETag在移动客户端的应用
  • JAVA并发编程--1.基础概念
  • JSONP原理
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • k8s如何管理Pod
  • mongodb--安装和初步使用教程
  • mysql 5.6 原生Online DDL解析
  • PermissionScope Swift4 兼容问题
  • Phpstorm怎样批量删除空行?
  • python大佬养成计划----difflib模块
  • Spring声明式事务管理之一:五大属性分析
  • Vue--数据传输
  • webpack入门学习手记(二)
  • 从PHP迁移至Golang - 基础篇
  • 记一次删除Git记录中的大文件的过程
  • 试着探索高并发下的系统架构面貌
  • 微信小程序开发问题汇总
  • 微信小程序填坑清单
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 在Mac OS X上安装 Ruby运行环境
  • 在weex里面使用chart图表
  • 中文输入法与React文本输入框的问题与解决方案
  • Hibernate主键生成策略及选择
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (十)c52学习之旅-定时器实验
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)80c52学习之旅-起始篇
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (译)计算距离、方位和更多经纬度之间的点