Docker-- 什么是Docker和Docker的基本知识

 

1、安装的时候把原始环境一模一样的复制过来,开发利用Docker可以消除协作编码时,在“我的机器上可以正常工作”的问题。

以前开发人员只是提交代码,现在我们要提交整个环境,以前是搬家,现在是搬整栋楼。

问题1:什么是镜像?

以前我们的代码就是应用,我们只管把我们的代码写完了,编译好的文件交给运维,由运维去部署。

从现在开始要有这个理念,我们不仅仅是提交代码,还有运行的文档、配置的环境,运行环境、运行依赖包等等……就像我们说的,搬家搬整栋楼;这样的话可以将当前这个功能能稳定运行的一整套环境,带着环境安装到Docker上面,让运维工程师发布,那么这样的话呢,就可以把原始环境一模一样的复制,消除了在开发这里能跑,运维工程师这里不能跑的问题

而且,运维还有个非常苦逼的概念是什么概念呢?由于互联网高并发的环境和大流量的访问,运维工程师要部署的时候,就是集群(简单的说就是多台),如果每一台都要需要去安装数据库等,重复性的工作会发疯的。JAVA的思想要把相同出现的代码抽取出来,形成一个公用的方法并且对外暴露。

那我们就不用到处编,调一次就行了,Docker会认为:能不能把一个良好的软件运行环境,打个包封装成一个东西叫做镜像,然后需要安装的每个人,有这么一份镜像,不就OK的吗?那么这种理念就是我们的Docker理念的雏形。

总结(Docker思想雏形&什么是镜像):

  1. 理念就是一次构建,处处运行。
  2. 我们不再提交代码,而是提交镜像,什么叫做镜像(就是含代码以外还有一堆东西的原始环境,保证正常运行)。
  • Docker理念

问题1:Docker的logo为什么是它是一只鲸鱼,背上有一个一个的集装箱,集装箱之间有隔离的这种区别?

大家带着这个问题,我们首先大家读一下这张图:

不用再给运维人员软件安装清单了,开发本地需要用到nginx、redis、mongoDB、Mysql四个,把你的这4个环境,相当于说放在4个集装箱(ship)里面,构建一下形成一个镜像文件,那这个镜像文件里面就有4个集装箱,每一个集装箱就是你本地正确运行的软件的一份克隆,一个镜像;

四个镜像放到Docker上面跑,好比鲸鱼背上4个集装箱各自独立,那么我这边运维呢,就只装一个东西,我也不想去装4次了,这就装一个东西Docker,就是那只鲸鱼背上由你开发给我一个镜像,这一个镜像里面就有这4个集装箱,这4个集装箱放到Docker上面,那么我运行的跟你一模一样。

总结:相当于一次配套环境换到别的机器上,一键运维部署好,大大的进化了我们的运维的操作,那么这个时候彻彻底底完成了一次封装构建到处运行的理念

百度百科(Dokcer是什么?)

  • 一句话

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

  • 能干嘛

  • 之前的虚拟机技术&容器虚拟化技术

虚拟机就是在一个操作系统里面运行另外一个操作系统,比如在windows系统里面运行Linux系统,应用程序对此毫无感知,因此虚拟机看上去跟真实系统一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响,这类区域以及完美的运行了,另一套系统能够使应用程序操作系统和硬件三者之间的逻辑不变。

虚拟机及其强大模拟的是整套操作系统(打印机等软件、硬件)。

但是启动虚拟机真的是很慢的,是分钟界别,但是Docker是秒级别。

虚拟机的缺点:

1、资源占用多  2、冗余步骤多  3、启动慢

Docker提出在Linux基础之上,提出Linux Container,不是完整的一个操作系统,将软件运行所需要的所有资源打包到一个隔离的容器中(可以当做一个集装箱ship)。

比较了Docker和传统虚拟化方式的不同之处:

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行的一个完整操作系统,在系统上在运行所需应用进程;
  • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传荣虚拟机更为轻便。
  • 每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

Docker就是小型的Linux系统。

  • 开发/运维(DevOps)

开发自己运维,不用运维了,开发也能干运维的活。(因此构建,随处运行)

问题:Docker开发的好处?

1、更快捷的应用交付和部署 2、更便捷的升级和扩缩容 3、更简单的系统运维 4、更搞笑的计算资源利用

  • 去哪下

docker官网:http://docker-cn.com/what-docker

仓库:http://hub.docker.com/

  • Docker安装

  • Docker的基本说明

CentOS Docker 安装
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
 
前提条件
目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
 
查看自己的内核
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

 
查看已安装的CentOS版本信息(CentOS6.8有,CentOS7无该命令)

 
 

  • 基本组成和Docker架构图

  • 架构图

  • 解释说明

问题1:什么是镜像?

问题2:什么是容器?

问题3:什么是仓库?

小总结:

需要正确的理解仓储/镜像/容器这几个概念:
 
 Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
 
*  image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
 
*  一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
 
* 至于仓储,就是放了一堆镜像的地方,我们可以把镜像发布到仓储中,需要的时候从仓储中拉下来就可以了。

  • 安装步骤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发布了206 篇原创文章 · 获赞 49 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/Sicily_winner/article/details/103706260