什么是Docker?
Docker 是一个开源的容器管理引擎。开发者可以通过Docker直接管理应用程序所需要的容器。它的logo如下:

为什么需要Docker
使用Docker主要有两个原因,
1、屏蔽不同环境的硬件差异,减轻开发人员在不同环境上,为了适配环境差异所需要做的工作。如各项系统配置、环境变量、基础包等。
2、统一服务部署的和执行的差异,让环境部署统一化流程化。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )

以上是笔者在长期使用docker后的认知。如果你第一次接触docker,或者只是听过docker的大名,感觉上文说的很模糊,则不必关注这些细节,
使用多了自然有自己的体会。你只需要知道Docker是类似于虚拟机的一个新兴产品。他可以统一管理各类虚拟机的安装和运行。注意这里是类似,docker虽然和虚拟机一样都是通过虚拟化技术来实现程序以及运行环境的部署和运行,但是二者在设计和实现中有着本质的区别。docker更加轻量级,占用的系统资源更少,响应速度也更快,更便捷。这也是为什么虚拟化技术推广了很多年,传统的虚拟化机一直不温不火,而docker一经推出后,才真正带动了这个市场。以下是我找到的一些两者的对比资料:

接下来讲讲docker的一些基本概念:
镜像:
docker中最基本的概念之一,可以理解为编程语言中的类。或者理解为某一个虚拟机的安装包。
容器:
docker中最基本的概念之一,可以理解为编程语言中的对象。也就是镜像实例化后的产物。再粗糙一点,可以说是虚拟机安装包后实际运行起来的应用程序。
DockerFile:
一个用来描述docker 镜像制作流程的声明式的脚本文件。该文件会描述镜像的制作流程以及环境变量等系统参数。但是不要担心,我们在制作镜像时,并不是从0开始写一个镜像,而是基于某一个基础镜像来制作的。常用的基础镜像早已由各个的生产厂商制作好了。我们直接拿来使用即可。至于如何编写DockerFile,会在后文中介绍。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
镜像仓库:
镜像仓库也就是保存在远端的用于存储镜像的仓库。我们在使用镜像时,需要将远端的仓库中的镜像先下载到本地,然后本地在根据镜像,生成对应的容器。
镜像仓库可以是外部开发的镜像仓库,也可以是出于安全考虑,自己搭建的仓库服务,常用的有harbor。

大家有没有发现其实docker的设计思路和maven非常想象。
公共组件放置在远端仓库(镜像仓库),本地需要就下载。下载下来各种包(镜像)以后,我们直接使用实例(容器)。

在回到docker,docker 的logo如上图,是一条鲸鱼,承载着各个集装箱。
集装箱在英文为Container [kənˈteɪnər],也就是容器的意思。
docker 是什么意思,[ˈdɑːkər] 码头工人。也就是说docker 就是一个容器的管理系统,负责组装、搬运、卸载我们的容器。

Docker 必知必会----初识的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会--建立练习环境

    书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...

  3. 读书笔记--SQL必知必会12--联结表

    12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...

  4. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  5. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  8. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  9. 0005 《SQL必知必会》笔记01-SELECT语句

    1.SELECT基本语句: SELECT 字段名1,···,字段名n FROM 表名 2.检索所有字段,用"*"替换字段名,这会导致效率低下 SELECT * FROM 表名; 3 ...

  10. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

随机推荐

  1. KingbaseES V8R6集群运维案例之---修改ssh端口后脚本创建互信

    案例分析: 在KingbaseES V8R6集群部署时,需要建立节点之间ssh互信(或者使用securecmdd工具),在有的生产环境,为了安全起见会修改ssh的默认端口:KingbaseES V8R ...

  2. KingbaseES date 数据类型的两种格式

    关于date 数据类型,Oracle 与 PostgreSQL 格式是不同的,Oracle 是 日期 + 时间的类型,而PG 则只有日期.KingbaseES Oracle 模式则同时实现了二者类型, ...

  3. KingbaseES V8R3集群备份恢复案例之--- timingbackup备份

    案例说明: KingbaseES V8R3集群自带了timingbackup.sh的脚本,可以通过一个脚本执行逻辑和物理备份,逻辑备份采用sys_dump,物理备份适用sys_basebackup,本 ...

  4. SQL日期操作函数(CONCAT、DATE_FORMAT、LAST_DAY)

    获取某月底日期:SELECT LAST_DAY('2021-07-01') AS month_end_date; 拼接年月格式: CONCAT(DATE_FORMAT(hp.planned_payme ...

  5. Python flask框架 request.json和request.form的区别

    一.fetch请求时,request.json能获取到数据,request.form获取不到数据 1 var data = {'name':'test'}; 2 3 fetch('http://loc ...

  6. #倍增,LCA,Kruskal#JZOJ 1092 洛谷 4180 [BJOI 2010] 次小生成树

    题目 给出一个无向图,问它的严格次小生成树(数据保证有解) 分析 首先先找一棵最小生成树,然后对于每条非树边\((x,y,w)\)可以找到最小生成树上\(x,y\)路径上略小于\(w\),首先如果能找 ...

  7. #圆方树,树链剖分#P4334 [COI2007] Policija

    题目 分析 先建一棵圆方树,必经点\(z\)就是满足\(z\)在\(x\)和\(y\)之间的路径上, 这个直接用树链剖分做,必经边必须要满足不在环上, 那么这个必经边就可以找到一个方点,就可以转换成必 ...

  8. 本周二晚19:00战码先锋第8期直播丨如何多方位参与OpenHarmony开源贡献

    OpenAtom OpenHarmony(以下简称"OpenHarmony")工作委员会首度发起「OpenHarmony开源贡献者计划」,旨在鼓励开发者参与OpenHarmony开 ...

  9. Git 分支管理:优化版本控制与应急处理的关键策略

    使用 Git 分支:轻松管理不同版本和应对紧急情况的最佳实践 使用 Git 分支 在 Git 中,分支是主仓库的新/独立版本. 假设你有一个大型项目,需要对其进行设计更新. 没有使用 Git 时: 复 ...

  10. C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南

    C 语言中的用户输入 您已经学习了 printf() 函数用于在 C 语言中输出值. 要获取用户输入,可以使用 scanf() 函数: // 声明一个整数变量,用于存储我们从用户那里获得的数字 int ...