Docker入门第一章

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是国外的共有仓库地址,可以配置镜像加速使用国内阿里云的仓库)
posted @ 2021-08-12 22:11  吕世昊  阅读(93)  评论(0编辑  收藏  举报