一、什么是docker?

docker就是集装箱的原理。可以实现远超于虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境一次封装,到处运行的目的。

集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。

那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

1:软件依赖的环境大致包括:

  • 配置文件
  • 代码
  • Tomcat
  • jdk
  • 操作系统

2:不同的应用程序可能会有不同的应用环境,一般我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,

但是虚拟机的开销较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小。

举个例子:

你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,

比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。

这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。

二、docker的三大核心:镜像、容器、仓库

  • 镜像:docker镜像相当于一个root系统(提供容器运行的程序、库、资源配置等文件)
  • 容器:镜像和容器的关系,就像面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库:仓库相当于一个代码控制中心,用来保存镜像(相当于Git)

docker可以让开发者构建应用程序时,将它与其依赖的环境一起打包到一个容器中,然后很容易的发布和应用到任意的平台。

利用docker创建的运行环境叫docker容器,容器是通过docker镜像创建的,docker镜像可以放在私有仓库中也可以放在共有仓库中。

三、用docker运行一个程序的过程

去仓库把镜像拉到本地,然后用命令将镜像运行起来,变成容器

四、docker作用

解决运行环境不一致所导致的问题。这样就不会产生“本地运行没问题,可一到服务器上就不行了”的情况。
限定最大的cpu使用内存硬盘,这样就起到了隔离的作用,避免产生“一块代码产生死循环,把磁盘占满了,其它程序也挂了”的情况。

最新文章

  1. JavaScript权威指南 - 数组
  2. windows环境tomcat8配置Solr5.5.1
  3. 移动web端的react.js组件化方案
  4. VR技术的高速发展阶段
  5. linux 内核与用户空间通信之netlink使用方法
  6. js isArray
  7. 查询AD账号的SID
  8. js 实现继承相关
  9. Lintcode: Merge Sorted Array II
  10. 17---Net基础加强
  11. JS预览图像
  12. Android Service 服务
  13. Clear All of Them I(HDU 3920状压dp)
  14. A Tour of Go Slices
  15. 一种用css实现图片在父框中等比缩放并垂直居中的办法
  16. 黑马程序员 Java基础<十八>---> 网路编程
  17. Js中数据类型判断的几种方法
  18. asp.net core 2.0+sqlsugar搭建个人网站系列(0)
  19. pm2通过配置文件部署nodejs代码到服务器
  20. Java NIO4:缓冲区Buffer(续)

热门文章

  1. [WPF 自定义控件]自定义一个“传统”的 Validation.ErrorTemplate
  2. 1994_An Algorithm To Reconstruct Wideband Speech From Narrowband Speech Based On Codebook Mapping
  3. C#设计模式学习笔记:(19)策略模式
  4. hyper-v安装ubuntu18的全过程+踩过的坑(win10家庭版)
  5. Windows10访问Ubuntu子系统(WSL)的桌面环境
  6. #《Essential C++》读书笔记# 第二章 面向过程的编程风格
  7. BigDecimal精确计算工具类
  8. linux centos7安装mysql8
  9. 没有正确配置扫描包,提示spring的bean不存在
  10. Node.js文档-模块