Docker入门简介(一)
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入门简介(一)的更多相关文章
- Docker入门简介
Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...
- docker入门——简介
从这里起航 本系列有感于<第一本Docker书>,当我拿到这本书时感觉如获至宝. 为了培养自己对docker的兴趣,不断鞭策自己,我决定开始写这个系列的博客——<站在蓝鲸的背上思考& ...
- Docker入门(一):简介
这个<Docker入门>系列文档,是我根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家 ...
- Docker入门系列1:简介
可以实现快速部署. 比如一台 16 核 32G 内存的虚拟机上,需要跑 500+ 个用户的应用(每个应用的功能可以认为是一个网站 + 一系列的 RESTful API),有两个事情很重要: 资源隔离: ...
- redis哨兵集群、docker入门
redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...
- Docker入门(七):部署app
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- Docker入门(六):Stacks
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- Docker入门(五):Swarms
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- Docker入门(四):服务(Services)
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
随机推荐
- 我的Spring之旅(二):为请求加入參数
1.前言 在上一篇我的Spring之旅(一)中,我们仅仅是利用不带參数的请求返回一个网页或一段json,在实际的B/S.C/S网络交互中,请求中须要自己定义的參数.本篇将简单地为之前的请求加入參数. ...
- 图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)
David Lowe(SIFT 的提出者) 0. 图像金字塔变换(matlab) matlab 对图像金字塔变换接口的支持(impyramid),十分简单好用. 其支持在reduce和expand两种 ...
- c#扩展方法简单
扩展方法 怎样知道的. 这还得从项目的本身说起.该项目是一套的微软底层架构上搭建起来的. 全部的框架以及控件的封装,数据的传递方法都是总体的框架封装好的. 对经常使用的dropwodnlist控件的数 ...
- 怎样从一名程序员过度到项目经理(整理自csdn论坛) 选择自 whoopee 的 Blog
1.从程序员到PM,是一条脱变的路,事实上程序员走的路最终不应该是项目经理.首先有一点需要明白的就是,一定规模的项目中,项目经理不需要太懂技术,他可以是一知半解.项目经理的任务不是在技术方面,技术相关 ...
- Altera公司高速PCB布线指南
来至Altera公司的高速PCB布线指南,该文档言简意赅,深入浅出,对于日常高速PCB布局布线中经常碰到的一些问题进行了解析.例如:板材的选择,介电常数及损耗因子对高速高频线路的影响,传输线,阻抗控制 ...
- [转帖 ]MySQL 5.7 新特性 JSON
MySQL 5.7 新特性 JSON 的创建,插入,查询,更新 作者: 我不是鱼 (2016-08-31 16:13)分类: MySQL 标签: MySQL JSON MySQL JSON 应用 ...
- Cocos2d-x 脚本语言Lua介绍
Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com ...
- Linux之tail命令实时收集[纠正误解]
tail [OPTION]... [FILE]... -c, --bytes=K output the last K bytes; alternatively, use -c + ...
- WPF 获得DataGridRow和 DataGridCell的方法
原文:WPF 获得DataGridRow和 DataGridCell的方法 原文地址 简介 在WPF中,DataGrid控件并没有提供访问其DataGridRow或者DataGridCell的方法. ...
- WPF依赖项属性不需要包装属性也可以工作
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...