docker是一个应用容器引擎项目,基于go语言开发,开源。官方文档也是非常详细,只不过是英文的,但是只要想看,肯定能克服。
docker火爆至今,镜像仓库里的内容也非常丰富了,日常用的环境很多在里面可以直接找到。

1. Docker为什么会出现

先提几个场景:

  1. 运维帮你开发的项目部署到服务器上,告诉你有问题启动不起来。你在本地跑了一下发现没问题...
  2. 要上线的项目因为一些软件的版本的更新,导致不可用了...
  3. 有项目涉及到的环境内容非常多,各种中间件,各种配置,还要部署好多台服务器...

这些问题其实总结起来就是跟环境有关。
要避开各种因环境不同导致的问题,那么最好是在部署项目的时候,连同项目所需要的各种环境一起部署了最好。
比如,项目中涉及到redis、mysql、jdk、es等环境,在部署jar包的时候把整个环境都带上。那么问题来了,怎么样能让项目带上环境一起呢?

Docker就是来解决这个问题的!

还是有些不清楚?再来打个比方。
我们在手机按装个安卓应用,那么从这个应用诞生到被安装的过程大致是这样的:

java开发 ——> apk ——> 发布到各大应用商店 ——> 用户A 下载apk安装即可使用

站在用户的角度,我根本不关心这个app需要依赖哪些环境的问题,下载下来安装就完事儿。按照这个思路,在来看docker:

java开发 ——> jar包 ——> 打包项目带上各种环境(成为一个镜像) ——> 镜像放到docker仓库里 ——> 运维童鞋下载镜像,直接运行。

2. Docker的核心思想

这个就是docker的logo,一条装满集装箱的鲸鱼,在鲸鱼背上,集装箱相互之间是隔离的,这也就是docker的核心思想了。
比如之前有多个应用在同一台服务器上运行,可能会有软件的端口占用冲突,现在隔离后就可以独自运行了。另外,docker可以最大化的利用服务器的能力。

3. Docker和传统虚拟化的区别

在docker容器技术兴起之前,基本上是用虚拟机,比如VM。如果你想在window上装个linux系统进行一些练习,那么就可以在VM里安装linux系统。
如图所示,我在win系统里运行linux系统,那我的win系统就是个宿主机(灰色区域)。蓝色部分就相当于是我在vm上安装的linux系统,从下到上,分别是内核、库、各种应用,在一台电脑上可以运行很多应用。

但是虚拟机非常的笨重,要虚拟整个系统,软件硬件都有,一个虚拟机就相当于一台电脑,所以启动虚拟机占用的资源很大,启动速度也很慢。

容器技术虽然也属于虚拟化技术,但是容器非常轻量化。比如linux容器,不再对模拟一个完整的操作系统,如果我只用到linux内核,那其他的东西就可以不要。
将软件运行所需要的资源打包到一个容器中,并且是隔离的,相当于集装箱。

如图所示:
在容器内的应用进程是直接运行于宿主机的内核,容器内没有自己的内核,更没有进行硬件的虚拟。容器就不再使用一个公共的lib库了,每个容器都有一个自己的lib,
只包含运行自己的APP所需要的。容器之间相互隔离,各自有着属于自己的文件系统,谁也不影响谁,启动速度也快到了秒级。

4. Docker可以干嘛

  1. 让应用能够更快的交付和部署。
    之前部署环境要安装一堆东西,现在用docker,打包成镜像发布测试,一键运行。
  2. 更便捷的升级和扩容。
    使用docker之后,部署应用简单得像搭积木。比如项目打包镜像发布运行后,发现需要增加服务器提高服务性能,那么可以直接在新的服务器上直接下载运行镜像。
  3. 更简单的系统运维。
    容器化之后,可以让开发、测试环境高度一致。
  4. 更高效的计算机资源利用。
    docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例。比如一个机子上我同时运行tomcat、es、kibana等等,更充分的利用系统资源。

【Docker】Docker概述相关推荐

  1. Docker基本原理概述

    Docker基本原理概述 Docker是一个用于开发,交付和运行应用程序的开放平台.Docker能够将应用程序与基础架构分开,从而可以快速交付软件.借助Docker,可以以与管理应用程序相同的方式来管 ...

  2. Docker Harbor概述及构建

    目录 一.Docker Harbor概述 1.1 Harbor的优势 1.2 Harbor的核心组件 1.2.1 Proxy 1.2.2 Registry 1.2.3 Core services 1. ...

  3. 『中级篇』docker Image概述(13)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker Image概述(13) 什么是镜像,镜像是怎么产生的,通过这节的学习的Docker container ...

  4. docker基本概述+部署(一)

    目录 1. docker介绍 1.1 docker概述 1.2 docker组成 1.3 docker与虚拟机的区别: 1.4 docker镜像分层 2. 部署docker: 2.1 安装docker ...

  5. Docker Compose 概述,到底什么是 Docker Compose,为什么要有Docker Compose

    文章目录 Docker Compose 概述,到底什么是 Docker Compose,为什么要有Docker Compose 1.Docker Compose概述 2.Docker Compose ...

  6. Docker 1 - 概述

    一. Docker产生的背景         提高资源的利用率,实现分布式的计算.云计算的核心即虚拟化和分布式,利用Docker我们可以在多台服务器轻松地扩展应用.我们所熟知的虚拟机VMWare即一种 ...

  7. Docker基本管理:上篇(Docker理论概述和基础命令)

    文章目录 Docker 的优点 一.Docker 架构 1.1:容器与虚拟机的区别 二.docker安装: 2.1:镜像基础命令操作 三.Docker基础操作 Docker 是一个开源的应用容器引擎, ...

  8. Docker : Docker 安装ES

    1.美图 2.概述 3.公共 创建网段 Docker : Docker创建自定义网桥 4.安装es 4.1.拉取镜像 (base) lcc@lcc ~$ docker pull docker.elas ...

  9. 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)

    Docker学习 Docker概述 官方地址:Empowering App Development for Developers | Docker Docker的思想来自于集装箱! 隔离:Docker ...

  10. Docker——Docker的基础和安装

    Docker基础 Docker概述 Linux 容器的具体实现方式 namespace机制 cgroup技术 使用Docker的优势 Docker的架构 Docker组件 Docker镜像和容器 Do ...

最新文章

  1. centos7安装配置cacti
  2. 那些年,我在游戏开发中改过的bug:坑爹的Vista与中间件
  3. 2.Nginx学习-The HTTP Core module
  4. Session会话技术
  5. php udp发送和接收_63、php利用原生socket创建udp服务
  6. 2.JVM和DVM之间的区别
  7. 图片相框展示的设计与实现
  8. css easyui,对比easyui和jwwui css
  9. 协议(protocol)与网络协议
  10. 利用Easy-Rules实现动态业务规则
  11. 携程基于云的软呼叫中心及客服平台架构实践\n
  12. matlab dbns实现,matlab实现贝叶斯网络
  13. matlab的GUI滤波器设计,基于Matlab GUI的模拟带通滤波器的设计
  14. 免费下载网易云音乐付费歌曲及下架歌曲
  15. 《深入浅出MFC》系列之消息映射(一)
  16. Count(), Rank(),Percentile.inc() ,Quartile.inc()
  17. [论文翻译]据传比MTCCN的FaceBoxes《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》
  18. GVRP-LNP-VCMP讲解
  19. W10的AndroidStudio4.0.1的下载安装与配置
  20. Mixly 数码管时钟实验

热门文章

  1. linux测试服务器上传速度和下载速度
  2. 基于51单片机STC89C52RC的直流电机软件PWM控制的基本原理
  3. Pytorch下微调网络模型(迁移学习)进行图像分类
  4. 中国大学生文科计算机大,人民大学学生参加2008(首届)中国大学生(文科)计算机设计大赛取得好成绩...
  5. python函数助手_转jmeter(十五)函数助手
  6. 软件测试经验与教训(一)
  7. 读书笔记系列《增广贤文》
  8. 2号 CAD常用快捷键
  9. LoadImage用法
  10. python autohotkey_AutoHotkey和Quicker各有什么优势和弊端?