镜像 - image容器 - container仓库 - repository
解决项目开发与发布环境不一致的问题
教程推荐
- 微软文档
- Docker官网
- 官方文档
- 官方教程1
- 官方教程2
Docker是什么
Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.
Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础结构分离开来,从而可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础结构。通过利用 Docker 的快速发布、测试和部署代码的方法,可以显著减少编写代码和在生产环境中运行代码之间的延迟。
Docker为什么会出现?
项目发布环境的配置不统一: 传统的项目发布只会提交一个jar包或者war包 , 现在docker容器可以连带开发环境一同打包发布
跨平台发布问题 : 比如开发在Windos下,但是最后发布要到Linux,之前要校对环境适配环境,十分繁琐,Docker可以解决
**
Docker解决的问题
Docker思想
Docker思想来自于集装箱 , 其核心思想是隔离 , 在一个系统环境中 , 对每一个项目(包括项目的环境)进行一个隔离 , 互不干扰影响 .
层级关系(举例)
Linux <— Docker容器A( A项目及其环境 ) | Docker容器B( B项目及其环境 ) | Docker容器C( C项目及其环境 )
Docker历史
Docker能干嘛
Docker(容器)与虚拟机技术的不同
- 传统虚拟机 , 虚拟出一条硬件 , 运行一个完整的操作系统 , 然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内容 , 容器是没有自己的内核的 , 也没有虚拟我们的硬件 , 所以就变得很是轻巧
- 每个容器间是互相隔离的 , 每个容器都有一个属于自己的文件系统 , 互不影响
DevOps(开发,运维)
应用更快速的交付和部署
传统 : 一堆帮助文档 , 安装程序
Docker : 打包镜像发布测试 , 一键运行
更便捷的升级和扩缩容
使用了Docker后 , 我们部署应用就和搭积木一样
无视差异可直接在另一个服务器运行
更简单的系统运维
在容器化之后 , 我们的开发 , 测试环境都是高度一致的.
更高效的计算资源利用
Docker是内核级别的虚拟化 , 可以在一个物理机上运行很多的容器实例 , 服务器的性能可以被压榨到极致Docker的基本组成( 架构 )
镜像( image ) :
Docker镜像好比是要给模板 , 可以通过这个模板来创建(多个)容器服务(最终服务运行或者项目运行就是在容器中的)
容器( container ) :
Docker利用容器技术 , 独立运行一个或者一个组应用( 通过镜像来创建的 )
容器的基本命令有—->启动 , 停止 , 删除
容器也可以理解为要给简易的linux系统
仓库( repository ) :
仓库是存放镜像的地方
仓库分为公有仓库和私有仓库
tips: 公有仓库默认为国外的 , 有点儿慢 , 使用是自行配置国内镜像
