目录
docker 简介:
1.docker是什么?(容器技术 容器虚拟化技术)
一次镜像 处处运行 从搬家到搬楼 ===== docker 镜像打包(源码+运行环境+配置文件+第三方组件等打包成镜像文件)(--> 镜像及应用)保证环境(运维和开发)一致
基于GO语言实现的云开源项目
docker主要目标: 通过对应用组件的封装 分发 部署 运行等生命周期的管理 使用户的APP及运行环境能够做到一次镜像 处处运行。
2.docker可以干什么?
Linux容器技术解决该问题 而docker就是在他的基础上发展过来的 将应用打包成docker容器上(镜像运行到docker容器引擎上)的实例 而docker容器在任何操作系统上都是一致的 这就实现了跨平台 跨服务器 只需要一次配置好环境 换到别的机子上就可以一键部署好 大大简化了操作。
3.docker理念?
解决了运行环境和配置问题的软件容器 方便做持续集成并有助于整体发布的容器虚拟化技术
4.传统虚机和容器的比较?
传统虚拟机:带环境安装的一种解决方案 对于底层系统来说 虚拟机就是一个普通文件 不需要可以删除掉
传统虚拟机技术是安装在主操作系统上的虚拟机管理系统 创建虚拟机(虚拟出各种硬件)在虚拟机上安装从操作系统 在从操作系统中安装部署各种应用。
缺点:
- 启动慢
- 占用资源多
- 冗余步骤多
5.容器虚拟化:
Linux容器:是与系统其他部分隔离开的一系列进程 从另一个镜像运行并由该镜像提供支持进程所需的全部文件。
容器提供的镜像包括了应用的所有依赖项,因此在从开发到测试再到生产的整个过程中 它都具有可移植性和一致性。
它不是模拟一个完整的操作系统而是对进程进行隔离 有了容器 就可以将软件运行所需要的资源打包到一个隔离的容器中
容器与虚拟机不同 不需要捆绑一整套操作系统 只需要软件工作所需的库资源和设置 系统因此变得高效,轻量 并保证部署在任何环境中的软件都能始终如一的运行
6比较docker和传统化虚拟技术不同:
~:传统化虚拟技术是虚拟出一套硬件后 在其上运行一个完整的操作系统 在该系统上再运行所需的应用进程
~:容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核并且没有进行硬件虚拟 因此容器要比传统虚拟机更为轻量
~:每个容器之间互相隔离 每个容器有自己的文件系统 容器之间进程不会相互影响能区分计算资源
docker可以干嘛?可以解决什么问题?
一次构建 处处运行
更快速的应用交付和部署
更便捷的升级和扩容
更简单的系统运维(封装后不易被影响)
更高效的计算机资源利用(docker(运输软件)是内核级虚拟化一台物理机可以运行很多个容器)
7.docker安装:
下载:官网:docker官网:Home - Docker
仓库:docker hub:Docker Hub(安装docker镜像的仓库)
docker官网简介:
docker并非是一个通用的容器工具 它依赖于存在并且运行的Linux环境
docker实质是在已经运行的Linux下制造了一个隔离的文件环境 因此他执行的效率几乎等同于所部署的Linux主机
因此 docker必须部署在Linux内核的系统上 如果想用其他系统部署docker就必须安装一个虚拟的Linux环境
在Windows上部署docker的方法都是先安装一个虚拟机并在安装Linux系统的虚拟机中运行docker
8.基本组成:(docker三要素)
镜像(image)
容器(container)
仓库(repository)存放镜像的地方
镜像就是一个只读的模版 镜像可以用来创建docker容器 一个镜像可以创建很多容器 它相当于一个root文件系统 比如:官方的centos:7 就包含了完整的一套centos:7最小系统的root文件系统
相当于容器的源代码 docker镜像文件类似于Java的类模版 而docker容器实例类似于Java中new出来的实例对象
容器:
- 从面向对象角度:
容器是用镜像创建的运行实例 镜像是静态的定义 容器是镜像运行时的实体
容器为镜像提供了一个标准的和隔离的运行环境,它可以被开关起停 删除 每个容器是相互隔离的,保证安全的平台。
- 从镜像容器角度:
可以把容器看作一个简易版的Linux环境(包括root用户权限 进程空间 用户空间 网络空间等)和运行在其中的应用程序。
仓库:集中存放镜像文件的地方
一般用阿里云 仓库分为public 和private
9.总结:
docker本身就是一个容器运行载体或者称之为管理引擎