【Docker】Docker概述
docker是一个应用容器引擎项目,基于go语言开发,开源。官方文档也是非常详细,只不过是英文的,但是只要想看,肯定能克服。
docker火爆至今,镜像仓库里的内容也非常丰富了,日常用的环境很多在里面可以直接找到。
1. Docker为什么会出现
先提几个场景:
- 运维帮你开发的项目部署到服务器上,告诉你有问题启动不起来。你在本地跑了一下发现没问题...
- 要上线的项目因为一些软件的版本的更新,导致不可用了...
- 有项目涉及到的环境内容非常多,各种中间件,各种配置,还要部署好多台服务器...
这些问题其实总结起来就是跟环境有关。
要避开各种因环境不同导致的问题,那么最好是在部署项目的时候,连同项目所需要的各种环境一起部署了最好。
比如,项目中涉及到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可以干嘛
- 让应用能够更快的交付和部署。
之前部署环境要安装一堆东西,现在用docker,打包成镜像发布测试,一键运行。 - 更便捷的升级和扩容。
使用docker之后,部署应用简单得像搭积木。比如项目打包镜像发布运行后,发现需要增加服务器提高服务性能,那么可以直接在新的服务器上直接下载运行镜像。 - 更简单的系统运维。
容器化之后,可以让开发、测试环境高度一致。 - 更高效的计算机资源利用。
docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例。比如一个机子上我同时运行tomcat、es、kibana等等,更充分的利用系统资源。
【Docker】Docker概述相关推荐
- Docker基本原理概述
Docker基本原理概述 Docker是一个用于开发,交付和运行应用程序的开放平台.Docker能够将应用程序与基础架构分开,从而可以快速交付软件.借助Docker,可以以与管理应用程序相同的方式来管 ...
- Docker Harbor概述及构建
目录 一.Docker Harbor概述 1.1 Harbor的优势 1.2 Harbor的核心组件 1.2.1 Proxy 1.2.2 Registry 1.2.3 Core services 1. ...
- 『中级篇』docker Image概述(13)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker Image概述(13) 什么是镜像,镜像是怎么产生的,通过这节的学习的Docker container ...
- docker基本概述+部署(一)
目录 1. docker介绍 1.1 docker概述 1.2 docker组成 1.3 docker与虚拟机的区别: 1.4 docker镜像分层 2. 部署docker: 2.1 安装docker ...
- Docker Compose 概述,到底什么是 Docker Compose,为什么要有Docker Compose
文章目录 Docker Compose 概述,到底什么是 Docker Compose,为什么要有Docker Compose 1.Docker Compose概述 2.Docker Compose ...
- Docker 1 - 概述
一. Docker产生的背景 提高资源的利用率,实现分布式的计算.云计算的核心即虚拟化和分布式,利用Docker我们可以在多台服务器轻松地扩展应用.我们所熟知的虚拟机VMWare即一种 ...
- Docker基本管理:上篇(Docker理论概述和基础命令)
文章目录 Docker 的优点 一.Docker 架构 1.1:容器与虚拟机的区别 二.docker安装: 2.1:镜像基础命令操作 三.Docker基础操作 Docker 是一个开源的应用容器引擎, ...
- Docker : Docker 安装ES
1.美图 2.概述 3.公共 创建网段 Docker : Docker创建自定义网桥 4.安装es 4.1.拉取镜像 (base) lcc@lcc ~$ docker pull docker.elas ...
- 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
Docker学习 Docker概述 官方地址:Empowering App Development for Developers | Docker Docker的思想来自于集装箱! 隔离:Docker ...
- Docker——Docker的基础和安装
Docker基础 Docker概述 Linux 容器的具体实现方式 namespace机制 cgroup技术 使用Docker的优势 Docker的架构 Docker组件 Docker镜像和容器 Do ...
最新文章
- centos7安装配置cacti
- 那些年,我在游戏开发中改过的bug:坑爹的Vista与中间件
- 2.Nginx学习-The HTTP Core module
- Session会话技术
- php udp发送和接收_63、php利用原生socket创建udp服务
- 2.JVM和DVM之间的区别
- 图片相框展示的设计与实现
- css easyui,对比easyui和jwwui css
- 协议(protocol)与网络协议
- 利用Easy-Rules实现动态业务规则
- 携程基于云的软呼叫中心及客服平台架构实践\n
- matlab dbns实现,matlab实现贝叶斯网络
- matlab的GUI滤波器设计,基于Matlab GUI的模拟带通滤波器的设计
- 免费下载网易云音乐付费歌曲及下架歌曲
- 《深入浅出MFC》系列之消息映射(一)
- Count(), Rank(),Percentile.inc() ,Quartile.inc()
- [论文翻译]据传比MTCCN的FaceBoxes《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》
- GVRP-LNP-VCMP讲解
- W10的AndroidStudio4.0.1的下载安装与配置
- Mixly 数码管时钟实验