感谢
1.实现Docker的语言
Docker是一种Go语言编写的容器技术。
2.为什么会出现Docker
因为之前的项目上线,需要将开发好的war包部署到服务器上(相当于交给运维的是代码),而开发人员的环境与运维人员的环境不同容易出现错误。而docker的出现将项目与环境(系统、数据、配置)一起整合放在服务器上从而解决了这个问题。这样就实现了软件带环境安装。
3.docker理念
Docker主要目标是通过对组件的封装、分发、部署、运行等生命周期的管理,使用户及运行环境能够做到“一次封装,到处运行”
将应用运行在docker容器上,而docker容器在任何操作系统都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好。
利用Docker技术的好处是,在集群环境中部署时不用在每台服务器上都安装相应的环境(Hadoop Redis),直接将所需的环境打包到Docker形成Docker镜像。在每台机器上安装Docker容器就可以了。
例子:比如进行开发需要NGINX、Redis、Mysql、Ubuntu环境,那么可以将这四个环境放在四个集装箱中,然后构建一下形成一个镜像文件,那么这个镜像文件就包括四个集装箱,可以将这三个集装箱放在Docker上运行。那么集群中的机器只需要安装Docker然后得到刚才的镜像文件就可以了。
4. 什么是docker
是解决了运行环境和配置问题的软件容器(可以认为一个集装箱就是一个容器),方便做持续集成并有助于整体发布的容器虚拟化技术。
Docker本身是一个容器运行载体或称之为管理引擎。
Docker三要素
镜像:Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。(相当于Java中的类)
容器:(相当于类的实例化对象)
Docker利用容器(Container)独立运行一个或一组应用
容器是用镜像创建的运行实例
容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全。(每个容器都是一个集装箱)
可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。(仅包含业务运行所需要的环境)
容器的定义和镜像几乎一摸一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
仓库(Docker Hub):
仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。
国内的公开仓库包括阿里云、网易云等。
docker架构
虚拟机技术和容器虚拟化技术的区别
虚拟机(virtual machine)就是带环境安装的一种解决方案,虚拟机的缺点:资源占用多、冗余步骤多 、启动慢。
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,**不需要捆绑一整套操作系统,只需要当前软件工作所需的库资源和设置。**系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
二者的不同之处:
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
可以实现DevOps(开发自运维)
原文链接:https://blog.csdn.net/TJtulong/article/details/104812561