Docker为什么出现?


一款产品:开发到上线 两套环境!应用环境,应用配置!

可能在开发环境你的产品是正常的,但是到了线上环境你的产品可能就会出现各种原因,或许是因为环境的不同,也可能是因为配置的不同等等各种原因导致服务的不可用!对于运维来说,考验就非常大。

环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop等等)!费时费力。

现在你需要发布一个项目(jar包 +(环境 Redis、Mysql、JDK、ES)),项目需要带上环境安装打包!此时Docker就可以帮你解决。

相当于Docker帮你将jar包和环境打包到一起部署上线,一套流程做完!

举个抽象的例子你用Java开发的apk应用(应用商店)然后吕世昊使用apk安装即可使用,而Docker是你用java开发一个jar,然后依赖一些环境如Mysql等等,而你只需要将这个jar和环境打包成一个镜像文件然后发布Docker仓库中(商店),吕世昊就可以下载你发布的Docker镜像,一键运行就ok了。

Docker简介


Docker是基于Go语言开发的!开源项目!

Docker的官网:https://www.docker.com

Docker的文档地址:https://docs.docker.com/  (Docker的文档是超级详细的)

Docker的下载:(进入Docker文档页面就有下载的入口)

Docker的仓库地址:https://hub.docker.com/

Docker和虚拟机的不同


传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件

Docker容器内的应用直接运行在宿主机的内容,Docker容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了

每个Docker容器间是互相隔离,每个Docker容器内都有一个属于自己的文件系统,互不影响。

Docker的好处


应用更快速的交付和部署

传统:给你一大堆帮助文档,安装程序。

Docker:打包镜像发布测试,一键运行。

更便捷的升级和扩缩容

使用了Docker之后,我们部署应用就和搭积木一样!

项目打包为一个镜像,扩展 服务器A!服务器B!

更简单的系统运维

在容器化之后,我们的开发,测试环境都是高度一致的。

更高效的计算资源利用:

Docker是内核级别的虚拟化,在一个物理机上可以运行很多容器实例。

Docker的基本组成


  • Client:客户端
  • DOCKER_HOST:Docker的服务
  • Registry:远程仓库
  • docker build:构建一个容器
  • docker pull:拉取一个容器
  • docker run:运行一个容器
  • Docker daemon:Docker的守护进程
  • Images:镜像(可以理解为Class类)(镜像就好比是一个模板,可以通过模板创建容器实例或者说容器服务,一个镜像可以创建多个实例)
  • Containers:多个容器(可以理解为类实例出来的对象)(可以对容器进行启动,停止,删除等基本命令)
  • Registry:远程仓库(存放镜像的地方,仓库分为公有仓库和私有仓库)(Docker Hub是国外的共有仓库地址,可以配置镜像加速使用国内阿里云的仓库)

Docker入门第一章的更多相关文章

  1. Docker 入门 第一部分: 定位和设置

    目录 Docker 入门 第一部分: 定位和设置 Docker概念 镜像和容器 容器和虚拟机 准备你的Docker环境 测试 Docker 的版本 测试 Docker 安装 回顾 总结 Docker ...

  2. Docker入门 第一课 --.Net Core 使用Docker全程记录

    微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的. 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Dock ...

  3. MySQL----MySQL数据库入门----第一章 数据库入门

    第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...

  4. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  5. 关于阮大神的es6标准入门第一章

    题记:之前在10月份的时候写过阮大神的es6的第一章,但是由于那段时间项目组的动荡,所以也没有什么后续,导致我现在对es6基本都忘的差不多了,不过,现在换了新公司,最近也没什么任务,所以现在开始重新写 ...

  6. C基础入门 - 第一章 - C语言绪言

    第1章 C语言绪言 1.1 C语言概述 1.1.1 C语言世界 1.1.2 C语言学习, 能当饭吃吗 1.2 开发环境构建 1.2.1 visual studio安装使用 1.2.2 visual s ...

  7. Java入门第一章

    后天就是十一长假了,亲们准备好了去哪儿玩了吗? 今天有点空,就来聊聊Java吧,当然是一些Java入门知识了,网上有很多,这里我只是列举一些我自己学到的,感谢大家关注喵的博客这么久,也为大家带来点新知 ...

  8. RabbitMQ 消息队列 入门 第一章

    RabbitMQ : 官网:https://www.rabbitmq.com/ GitHub:https://github.com/rabbitmq?q=rabbitmq 第一步安装: 点击  htt ...

  9. docker 入门第一步

    docker 安装 利用yum 安装 yum 源更新到最新版本,命令: yum update 需要安装工具 net-tools 命令:yum  install -y net-tools 配置docke ...

随机推荐

  1. 源代码管理相关命令(Git常用命令、Nuget常用命令、CMD常用命令)

    Git常用命令 源代码工具 工具名称 相关地址 Git Git for Windows VSC Visual Studio Code VSC插件(Gitlen) GitLens - Git super ...

  2. 富文本编辑器之游戏角色升级ing

    一.前言 想必大家看到这个标题,心中不禁会浮现几个问题: 什么是富文本编辑器? 富文本编辑器和游戏角色有什么关系? 为什么是升级ing? 什么是富文本编辑器--富文本编辑器集成了格式设置.媒体嵌入.社 ...

  3. 32、JavaScript介绍

    32.1.JavaScript概述: 1.JavaScript的历史: 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名Scr ...

  4. SQL反模式读书笔记思维导图

    在写SQL过程以及设计数据表的过程中,我们经常会走一些弯路,会做一些错误的设计.<SQL反模式>这本书针对这些经常容易出错的设计模式进行分析,解释了错误的理由.允许错误的场景,并给出更好的 ...

  5. 再看Lambda架构

    博客原文地址 最*看了一本<大数据系统构建>的书,发现之前对于Lambda架构的理解还是不够深入和清晰. 之前对Lambda架构的理解 Azure文档上有一张Lambda架构的图, 同时也 ...

  6. JavaScript中for...in循环使用问题

    问题 使用for...in去遍历一个数组,同时将值添加到另外一个数组时,新的数组中每次都多出来一个function类型的元素. 原因及解决方案 for...in用来循环本身没有问题,但是经常被误用来遍 ...

  7. Ha1cyon-CTF 芜湖

    感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...

  8. flask 的安装与使用

    一.Flask Flask 是一个轻量级的框架,可以将数据库中的数据呈现到页面上(动态网站). 之前搭建的网站是静态网站(没有连接数据库)页面的数据不会改变.但是现在用的网站都是动态网站. 1.下载F ...

  9. 刷算法,这些api不可不知!

    大家好,我是老三,最近在刷算法,发现有些api记得不熟,所以整理了一波,如果你也在刷题,赶紧收藏吧! 集合 在刷题中,各种数据结构是我们常常用到的,例如栈实现迭代.哈希存储键值对等等,我们来看看常用集 ...

  10. Pytorch的模型加速方法:Dataparallel (DP) 和 DataparallelDistributedparallel (DDP)

    Dataparallel 和 DataparallelDistributed 的区别 一.Dataparallel(DP) 1.1 Dartaparallel 的使用方式 Dataparallel 的 ...