1.docker为什么会出现?
-
一款产品或者项目来说,一般有三个环境,日常/测试环境、预发环境、正式/线上环境
这么多环境,对其环境的配置是十分麻烦的,每一个机器都要部署环境,有的会有集群Redis、Hadoop等,
容易出错、并且可能配置错了后,要冲头再来,是很费时费力的。 -
举例:我们现在要发布一个项目,这个项目依赖的环境,比如说,python、redis、Mysql等等,
会配置部署起来很麻烦,而且很多的东西是不能够跨平台的,如果说我们发布,就我们的项目以及环境整体搞成一个整体发布的话,而不是环境中的所需要的一个一个去
配置安装,这样就是项目+环境的一个整体打包发布! -
这样是否可以实现?
可以实现,docker就是来干这个事的。 -
有了docker之后,
传统的流程:开发、打包项目、后续交给运维
现在的流程:开发、打包项目环境整体,部署上线,一整套流程!
2.docker核心思想
- docker核心思想就是隔离,用docker图标的含义来说就是,打包装箱,每个箱子都是互相隔离的。
- 可以理解为,每个箱子都是不同的东西,但是都可以同时放在一个船上
- docker 通过隔离的机制,可以将服务器利用到极致
3.docker的一些知识点
- docker 十分的轻巧
- docker 是基于Go语言开发的,并且是开源的
- docker官网:https://www.docker.com/
- docker官方文档:https://docs.docker.com/ 官方的就很详细了
4.docker能做什么
4.1 之前的虚拟机技术的缺点
- 资源占用十分多
- 冗余步骤多
- 启动很慢
4.2 现在的容器化技术
容器化技术不是模拟的一个完整的操作系统
Docker是内核级别的虚拟机,可以在一个物理机上可以运行很多的容器实例!
- 应用更快速的交付和部署
- 更便捷的升级和扩容
- 更简单的系统运维
- 更高效的计算资源利用
4.3 比较Docker 和虚拟机技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机内核中,容器是没有自己的内核的,也没有虚拟我们的硬件
- 每个容器间是相互隔离的,每个容器内部都有一个属于自己的文件系统,互不影响。
5. Docker的基本组成
5.1 Docker 架构图
- 镜像(image): docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个
容器(最终服务运行或者项目运行就是在这个容器中的) - 容器(container): docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建。
目前就可以把这个容器理解为就是一个简易的Linux系统 - 仓库(repository):
仓库就是放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub(默认是国外的),阿里的,华为的也有仓库。