博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Containers 大冒险: 术语
阅读量:7198 次
发布时间:2019-06-29

本文共 1570 字,大约阅读时间需要 5 分钟。

前言

在开始介绍具体操作之前,需要向各位不熟悉容器技术的Windows平台下管理员和开发者做一个基础概念的普及。而且在阅读微软的之前,推荐阅读Docker官方的。因为微软的文档中主要提及了Windows Containers的一些特有概念,而容器技术本身的概念并没有被着重介绍。因此仅阅读微软现有文档并不能完整的了解容器技术。这里也推荐阅读由Elton Stoneman编著的一书来对Windows平台上的容器技术有一个详细的了解。

当然容器技术并不是孤立存在的,它和编排调度系统通力合作,助力应用程序的微服务化改造。在Mark大神的一文中介绍了整个故事的前因后果。

题外话

上文中的Mark大神是谁?

简单来说呢,他是Microsoft Azure现任CTO。一个有个人维基百科的男人。一个踢爆的男人。一个给DOS写NTFS驱动的男人。

(后缀文件见过没?听过么?都没有? 年轻真好。)

本文也尽量通过简洁的语言让各位对容器技术有一个快速且基础的了解。

名词解释

Docker Engine

Docker Enginer是一个包含客户端和服务器的应用。主要包含以下组件:

  • 后台服务
  • REST API
  • 基于命令行的客户端

其中后台服务在Windows客户端中服务名是Docker Engine,Windows服务器中的服务名是Docker,如果需要重启Dokcer服务来让配置生效的话,还请注意使用正确的服务名。

REST API则比较好理解,这是目前主流的对资源进行抽象和管理的方式。

默认情况下Docker为我们提供了基于命令行的名为docker的客户端,实际使用中也可以使用其它编程语言自行开发客户端或者脚本来管理Docker。比如下面就是一个使用Python客户端的例子。具体可以阅读官方。

clipboard.png

这些组件的关系可以使用Docker官方文档中的一张图来解释。

img02

镜像(Images)

镜像是包含容器创建指令的只读模板。形象点的例子就是在超市中批量贩售的空整理箱,整理箱有大有小,对应着基础的操作系统镜像也是有大有小的。至于用户拿整理箱放什么东西就看用户自己的需求了。有的用户在整理箱里装好自己开发的设备后再次贩售。这个第一次预装了设备的“整理箱”就是常见的各种官方镜像,比如MySQL, Postgres, Redis。

容器(Containers)

容器是运行起来的镜像。对应之前解释镜像时使用的例子,就是正在使用的整理箱。这个正在使用的整理箱已经连接上了其它设备,里面的装备参数也进行了调整。当任务完成后,整个整理箱便被还原成初始状态,如果没有特别标记的话,之前设置好的所有参数也丢失了。

仓库(Registries)

仓库是保存镜像的设施。有公共仓库和私有仓库的区别。对应之前的例子,就是超市和特供商店的区别。默认情况下,当执行拉取操作时,Docker会从Docker Hub拉取用户指定的镜像。Docker Hub可以通过浏览器。这里有一点需要注意,Docker访问仓库时使用的时HTTPS协议,如果用户搭建的仓库没有配置证书,则需要在非安全仓库中添加相关仓库地址。

架构

最终将上述名词串起来之后,整体使用流程如下:

  1. 从公有仓库拉取基础镜像
  2. 编写Dockerfile,通过build指令构建镜像
  3. 通过run指令运行镜像,并确认容器工作正常
  4. 如果镜像需要分享到Docker Hub上,则可以通过push指令推送。如果需要导入到离线环境,则可以使用save指令。

以下这张图则来自Docker官网。

img03

总结

正如文章标题所说的,本文只是例举了Windows Containers中和Linux Containers中相同的部分,还没有涉及Windows Containers的网路及存储部分,这两个部分的内容将在后续详细讨论,尽情期待。

转载地址:http://phzum.baihongyu.com/

你可能感兴趣的文章
Android全屏和强制横屏竖屏设置
查看>>
Java序列化高级认识
查看>>
开发 Windows 8 Bing地图应用(1)
查看>>
Block With工具
查看>>
[转]WF事件驱动(4) -持久化
查看>>
两个栈实现队列 两个队列实现栈
查看>>
Doubly linked list
查看>>
javascript对Dom操作中table添加行性能问题
查看>>
Android 自定义title样式
查看>>
Bootstrap<基础一> CSS 概览
查看>>
Linux永久修改系统时间和时区方法
查看>>
HDU1257 最小拦截系统 【贪婪】
查看>>
(年代久远的)常用表情符号
查看>>
Android GUI之Window、WindowManager
查看>>
Android 微信分享信息
查看>>
ECMAScript 6 Features 中文版
查看>>
UVA 11149 - Power of Matrix(矩阵乘法)
查看>>
用yo命令创建项目
查看>>
log4j与commons-logging,slf4j的关系(转)
查看>>
Swift - 使用CGBlendMode改变UIImage颜色
查看>>