文档章节

docker 学习(一)

fangPeng_
 fangPeng_
发布于 2018/09/17 17:08
字数 1490
阅读 20
收藏 0

docker概念

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

Docker优势:

更快速的交付和部署(一次创建和配置,可以在任意地方正常运行)

更高效的虚拟化(不需要hypervisor支持,内核级虚拟化)

更轻松的迁移和扩展(在任意平台移植)

更简单的管理()

关于docker理解

一、首先是关于虚拟化

虚拟化我们可以简单的理解为一种资源管理方式。有如下几种虚拟化的方式:

1.完全虚拟化:对底层硬件实现完全的虚拟。例如:Vmware Workstation

2.部分虚拟化:只对部分硬件资源的虚拟。

3.操作系统级虚拟化:内核通过创建多个虚拟操作系统实例来隔离各个进程。

docker就是属于操作系统级的虚拟化。

二、其次是对docker的理解

docker的思想来源于集装箱,试问集装箱解决了什么问题?
试想,在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会相互影响。那么我就不需要专门运送水果的船和专门运送化学物品的船了。只要这些货物在集装箱里装的好好的,那我就可以用一艘大船把它们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮,而docker就是集装箱。

Docker的优点:

1.更快速地交付和部署

不同的应用程序可能会有不同的应用环境。比如,.net开发的网站和.php开发的网站所依赖的软件就不一样,如果把他们所依赖的软件都安装在一个服务器上,就要调试很久,不仅麻烦,还会造成一些诸如IIS和Apache访问端口冲突这样的问题。这个时候你就要隔离.net开发的网站和.php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机并在不同的虚拟机上部署不同的应用,但是虚拟机开销比较大。此时docker就可以实现虚拟机隔离不同应用的这种功能,并且开销比虚拟机小,小就意味着省钱。

2.更轻松的迁移和扩展

我们再来举个简单的例子。比如你开发的时候用的是Ubuntu,但是运维管理的都是CentOS,运维在把你开发的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转CentOS的问题,比如:存在一个特殊版本的数据库,只支持Ubuntu而不支持CentOS,那么在转移的过程中就得想办法解决这样的问题。但这时候如果有docker,你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。

3.更高效的虚拟化和更简单的管理

在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会被有效的利用起来。而且Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

Docker的三个基本概念:

镜像、容器、仓库

三、Docker的三个基本概念的详解

1.镜像

Docker在英语当中的本意是“物件/码头工人”,docker容器的意思为物件的容器。关于镜像,举个简单的例子,我们经常安装的windows操作系统,先要从网上下载ISO镜像文件,经解压后才能安装和使用。Docker也是一样,我们要向创建docker容器,就需要创建容器的类似于ISO镜像文件的docker镜像文件。

2.容器

关于容器,大家肯定并不陌生。没错,docker容器就是来管理不同架构的应用程序的。从本质上来说,容器是从镜像创建的运行实例。容器与容器之间是相互隔离的,每个容器都是保证安全的平台。

3.仓库

仓库是集中存放镜像文件的场所,但是在这里要区分两个概念:仓库和仓库服务注册器。仓库注册服务器往往存放着多个仓库,每个仓库又包含着多个镜像。

仓库分为公开仓库和私有仓库,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定快速的访问。

除此之外,用户可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。

© 著作权归作者所有

fangPeng_
粉丝 3
博文 39
码字总数 22490
作品 0
北京
前端工程师
私信 提问
IntelliJ IDEA快速实现Docker镜像部署

一、Docker开启远程访问 二、IntelliJ IDEA安装Docker插件 三、启用Docker 四、Spring Boot服务docker部署 1、新建一个Spring Boot工程,在工程里写一个REST接口,如下,简单返回一个字符串。...

吴伟祥
2018/11/09
0
2
容器Docker学习系列五~命令学习history,save, import

随着我们几篇文章Docker的命令学习,关于Docker本地镜像管理的命令学习已经接近尾声。今天我们就学习下本地镜像管理的最后三个命令history,save, import。当然前面命令没有掌握熟练的同学可以...

LuckQI
2018/08/19
0
0
容器Docker学习系列七~系统信息学习

前面了解的Docker学习的本地镜像管理还有镜像仓库的命令学习,怎么说呢其实这些命令已经够我们平常使用的了。但是如果随着发展我们在系统程序调优上可能就需要了解更多的知识。比如Docker系统...

LuckQI
2018/08/22
0
0
Docker 学习资源整理

作者:林梓 链接:https://zhuanlan.zhihu.com/p/23508637 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Docker 是近年来非常火的容器技术,而且啊 Do...

落叶追风
2016/11/22
31
0
『中级篇』docker官网介绍(四)

从docker官网了解docker的历史,为了保证文章的质量,多增加了截图,想让各位老铁看的比较爽…… 官网 docker官网介绍 分类 社区版(Docker Community Edition (CE) ) 企业版(Docker Ente...

IT人故事会
2018/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 请务必让我分担他们的痛苦!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :分享石元丈晴的单曲《Why》: 《Why》- 石元丈晴 手机党少年们想听歌,请使劲儿戳(这里) @一代码哥 :当他妈狗屁的程序员,天天...

小小编辑
22分钟前
61
3
php 遇到 No input file specified的解决方法

(一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后面的1...

chenhongjiang
今天
7
0
MySQL 基础

一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到mysql -u账...

华山猛男
今天
6
0
简单的博客系统(四)Django请求HTML页面视图信息--基于函数的视图

1. 编写用于查询数据的功能函数 应用目录 下的 views.py 文件通常用于保存响应各种请求的函数或类 from django.shortcuts import renderfrom .models import BlogArticles# Create your ...

ZeroBit
今天
5
0
用脚本将本地照片库批量导入到Day One中

因为目前iCloud 空间已经不足,其中95%都是照片,之前入手了DayOne,且空间没有限制,订阅费一年也不少,再加上DayOne作为一款日记App 也比较有名,功能方面最大的就是地理视图与照片视图,尤...

在山的那边
昨天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部