Docker 介绍

Docker是Docker.lnc公司开源的一个基于LXC技术智商构建的Container容器引擎,源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源。

Docker是通过内核虚拟化的技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所有Docker容器在运行是,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。

Docker的理念: Build(构建)   Ship(传输)    Run(运行)

Docker 组成

我们可以理解为Docker是一个非常传统的C/S结构的一个项目,由 Docker Client 和 Docker Server构成。

                           

我们安装完Docker之后会有个docker的命令,这就相当于Docker Clinet。然后docker会在后台启动一个进程,这就是Docker Server。Docker Clinet 和 Docker Server 之间通过 REST API来进行通信。

如下图: Docker的C/S架构

容器VS虚拟化

                               

Docker和虚拟机最大的区别是少了客户机操作系统,镜像和消耗宿主机资源来说容器相对是轻量级。

                              

Docker能干什么?

常用的8个Docker的真实使用场景,分别是简化配置、代码流水线管理、提高开发效率、隔离应用、整合服务器资源、调试能力、多租户环境、快速部署。

Docker改变了什么

面向产品: 产品交付,之前我们做产品交付可能是交付软件包和安装操作文档来进行部署,那么现在的话可以直接交付Docker镜像。例如现在非常多的开源项目都提供了Docker镜像或者Docker file。

面向开发: 简化环境配置, 每次公司有开发入职,第一天肯定是准备开发环境。有些复杂的开发环境部署麻烦,有Docker之后可以构建好Docker镜像,直接启动容器使用。

面向测试: 多版本测试,Docker是轻量级的,可以快速的启动多个不同版本的容器来进行测试。

面向运维: 环境一致性, 基于Docker镜像可以实现多个环境一致性。

面向架构: 自动化扩容(微服务),当访问量上来之后可以快速启动多个容器来进行架构扩容。

基于Docker的不可变基础设施

    不可变基础设施,服务上线之后就不能做任何的变更,不要直接ssh登录到容器进行配置的变更等等这样的操作,因为大部分故障来源于变更。

不可变基础设施的理念是用替换的方式来进行版本更新,比如V1要升级到V2,不要直接对V1进行修改变更,而是直接新起一个V2容器,来进行替换。因为容器相比虚拟机是轻量级的,可以快速实现。

Ref

八个Docker的真实应用场景 - DockOne.io

Docker入门简介(一)的更多相关文章

  1. Docker入门简介

    Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...

  2. docker入门——简介

    从这里起航 本系列有感于<第一本Docker书>,当我拿到这本书时感觉如获至宝. 为了培养自己对docker的兴趣,不断鞭策自己,我决定开始写这个系列的博客——<站在蓝鲸的背上思考& ...

  3. Docker入门(一):简介

    这个<Docker入门>系列文档,是我根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家 ...

  4. Docker入门系列1:简介

    可以实现快速部署. 比如一台 16 核 32G 内存的虚拟机上,需要跑 500+ 个用户的应用(每个应用的功能可以认为是一个网站 + 一系列的 RESTful API),有两个事情很重要: 资源隔离: ...

  5. redis哨兵集群、docker入门

    redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...

  6. Docker入门(七):部署app

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  7. Docker入门(六):Stacks

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  8. Docker入门(五):Swarms

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

  9. Docker入门(四):服务(Services)

    这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...

随机推荐

  1. WPF 获取鼠标屏幕位置、窗口位置、控件位置

    原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT { public int X; public int Y; public POINT(int x, int ...

  2. React路由配置

    React路由简单配置 //入口文件index.js import React from 'react'; import ReactDom from 'react-dom'; import { Rou ...

  3. IIS运行WCF服务报错

    试图加载格式不正确的程序   image 解决方法   image HTTP 错误 500.19   image 解决方法在控制面板————>程序————>启用或关闭windows功能—— ...

  4. 协程在Web服务器中的应用(配的图还不错)

    协程(纤程,微线程)这个概念早就有之,各家互联网公司也都有研究,但在国内各大论坛和大会热起来,还是今年的事. 最近参与讨论开放平台建设和架构设计过程中,有同事提到了使用协程代替线程,能够很大幅度的提高 ...

  5. 【Ubuntu】查看系统资源占用(内存,cpu和进程)

    1 top 查看ubuntu的资源占用的命令为 $: top 说明:top命令就可以查看内存,cpu和进程了,很方便 top: 主要参数: d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果 ...

  6. Image Captioning 经典论文合辑

    Image Caption: Automatically describing the content of an image domain:CV+NLP Category:(by myself, y ...

  7. 基于Go语言快速构建RESTful API服务

    In this post, we will not only cover how to use Go to create a RESTful JSON API, but we will also ta ...

  8. WPF 中RichTextBox控件用法细讲

    1. 取得已被选中的内容:(1)使用RichTextBox.Document.Selection属性(2)访问RichTextBox.Document.Blocks属性的“blocks”中的Text ...

  9. Delphi 编写DLL动态链接库文件的知识和样例(有详细步骤,很清楚)

    一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...

  10. Tomcat Java SSL

    转自 - http://blog.csdn.net/szzt_lingpeng/article/details/51247980 转载自:http://my.oschina.net/cimu/blog ...