一、Docker基础简介
1.图标
鲸鱼背上的集装箱
docker是一个基于Go语言的云开源项目
2.背景知识
熟悉linux命令和相关背景知识 ps top、
PS是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,
就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
熟悉maven和git知识 git pull
参考招聘
java EE-----java Springmvc、springboot、mybatis
Docker开发运维方向-----Go k8s、Swarm、Compose、Macheine、mesos、CI/CD jenkinds整合.....
3.是什么
问题:为什么会出现docker
传统开发中代码开发和运维布署割裂,环境和配置导致来回调整项目。
集群环境布署的重复劳动
docker给出了一个标准化解决方案。
docker理念
将开发时的代码、配置、系统、数据整体打包到运维布署中,即软件带环境安装。
以搬家举例,传统做法是把家具从老房子搬走到新房子,docker是把老房子整栋楼搬走到新地方。
上图中的最右一栏就叫镜像
几句话总结
一次构建,处处运行
Build,Ship and Run Any App,Anywhere(这里ship理解为安装,docker图标中集装箱的比喻)
docker解决了运行环境和配置问题软件容器,方便做持续继承并有助于整体发布的容器虚拟化技术
docker三要素:仓库、镜像、容器
容器:集装箱。Docker利用容器(Container)独立运行一个或一组应用 ; 容器是使用镜像创建的运行实例 ; 容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全; 可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序 ; 容器的定义和镜像几乎一摸一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的 。
镜像: Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。
仓库: 仓库(Repository)是集中存放镜像文件的场所。 仓库(Repository)和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。 国内的公开仓库包括阿里云、网易云等。
整体发布:鲸鱼上装了众多集装箱
4、能干嘛
之前的虚拟机技术
虚拟机就是带环境安装的一种解决方案。
它可以在一种操作系统中运行另一种操作系统。应用程序对此毫无感知,因为虚拟机看上去和真实系统一样。但对于底层系统来说,虚拟机就是一个普通文件,不需要时可以删除,对其他部分毫无影响。
这类虚拟机完美运行了另一套系统,能够使应用程序、操作系统和硬件三者之间的逻辑不变。
举例:假设灰色部分理解为宿主机系统windows、Kernel可以是linux内核和各种库、Libraries为模拟的各种硬件(内存、处理器等等)
缺点:启动慢、资源占用多、配置麻烦、冗余步骤多