不少人从来没有接触过docker,或者仅仅是听说过,本文试图从原点开始深入了解docker的全貌,剖析docker的基础概念,让我们一起开始docker之旅~~~


开场:什么是docker

docker是一个容器平台。

这是我最直接的定义,打字间我即兴查了一下wiki,引证了以上单句

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines.

目标:为什么用docker

docker可以提供即开即用的特定OS环境,并且简化对相关OS的依赖或者部署周期

这是我的看法,互联网工作者几乎99.9%都是以App或者Service作为导向,而实际使用中docker不仅仅是为了快速部署,容灾热备,换句话说docker不仅仅是和应用相关

docker适合一切以环境导向的联合部署作业(TASK-oriented)

例子:一个简单的网络型app和这个app依赖的复杂网络设置

例子:一个简单的用户态服务和一个复杂的定制化LINUX OS,如OPENWRT

例子:一个简单的源码文件夹和一个复杂的跨架构工具链

概念:docker的逻辑结构

docker是vm的包装,docker-machine是docker开始的地方,这里存在并且一直被忽视一个非常关键的适配桥接:driver

machine的特性start/stop和driver的模型决定了另一端一定存在一种虚拟化支持,也就是说docker不是虚拟化的全部而只是一个名词的概要,docker离不开虚拟化

理由非常简单而且明确:docker-machine和dock-cli到组成的engine,编译88%以上的源码语言go.

体验:从WINDOWS 10到WINDOWS 7不同的docker产品,一样的基础构成

-跟随docker for windows一路走来,docker以非常匀速的方式在不停演化,一切都在意料之中

Docker Desktop for Windows是伴随着Hyper-V(win 7无缘的本质)的联合体,这里诞生出一个moby,作为整个产品的特异化核心

Docker Desktop for Mac是伴随着linuxkit+qemu的联合体,这里又又诞生出一个moby,作为整个产品的特异化核心

Docker Toolbox是伴随着Docker Desktop发展的弃婴(巨大的甲骨婴),本文,我们(我和我的看官们)将抛弃一个时代失败品Oracle VM VirtualBox,迎来本篇的内涵Vmware

深化:在Window 7上非常规的使用Vmware Workstation和docker

如果你仅仅猜到了开始,看到我blah-blah-blah码了几百字就应该会猜到,hehe以下都是精华浓缩版,因为困了,要睡觉了

长话短说,短话精缩,Win 7上使用workstation太通常了,稍微有一些虚拟化经验的都知道微软有Virtual PC.而它的对面就是Vmware.

显然Virtual PC挑不动docker这根大梁所以Hyper-V才能独树一帜(没有细分的产品)

准备好docker vmware driver就开始吧,我用的是大家不太常见的driver,没有任何start说明

我的docker和vmware都没有安装在缺省路径,这时必须要动动脑筋,soft/hard link可以解决问题

我的超高T级HGST氦气盘没有在缺省路径,所以我们准备把VM放在这个仓储上必须提供storepath的环境变量,我在go文件中确认过cli上下文,或者系统级别都提供支持

我的docker动辄几百G,从export容器的从容不迫到更新image:last,tar到文件,4.14的kernel必然的某些特定错误,不难看出4.19的适用面更广也支持度也高于通俗的4.14kernel

XFS提供了很好的并行IO性能

关键语句是修改start.sh执行${DOCKER_MACHINE}" create -d vmware --vmware-boot2docker-url="file://\????????.iso",此处应有掌声,因为经历了几次失败后我发现失败的路径是docker的安装盘,所以可以逃避失败删除boot2docker-url在覆盖cache后等一段时间,或者如上所示干脆把盘符省去,后面的路径都是有效的,不知道是不是start.bat没有问题

当然可以看一下创建时的调试输出,一般不看也是一件很省心的事情,应该一切顺利

env可以输出环境变量,cmd/ps可以看到SET版本,bash看到export版本

然后在困意中,我贴出本文最佳,之2幅图片在结尾,一如既往,所有的内涵都在图片里,所有的内涵都在图片里,所有的内涵都在图片里

提前 To be continued.



首创诠释docker的Formulas: Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation = super machine (docker从零开始时记,Follow me and you go)的更多相关文章

  1. Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO) 下篇dockerの奥义

    美好的事物总是来自不易,而我是一个docker新手 从以上开场,请各位follow me站在一个初学者的角度,一步一步用最简单的视角审视docker和它的真实存在 上篇预告:Windows 7 + T ...

  2. 预告:Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO)下篇dockerの奥义

    困 困 等明天再写吧 主题将围绕在Vmware使用持久化XFS disk后machine rm default后不丢失images containers volumes etc.的奇观 并将展开部署c ...

  3. Windows下的Linux子系统安装,WSL 2下配置docker

    Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在“启用或关闭W ...

  4. windows下安装linux虚拟机(wsl2),并安装docker。

    一.windows terminal(重要工具,但也可以不装) 这是微软官方推荐的终端工具,类似mac的iterm2,可同时开启多个终端,最开始默认有power shall,cmd,可下载gsudo集 ...

  5. Docker Desktop for Windows Experience

    Docker Desktop for Windows Experience: https://github.com/poazy/boazy-learn/blob/master/doc/Docker%2 ...

  6. windows环境30分钟从0开始快速搭建第一个docker项目(带数据库交互)

    前言 小白直接上手 docker  构建我们的第一个项目,简单粗暴,后续各种概念边写边了解,各种概念性的内容就不展开,没了解过的点击 Docker 教程 进行初步了解. Docker 是一个开源的应用 ...

  7. VMWare Workstation 配置docker多macvlan网络方法

    VMWare Workstation 配置docker多macvlan网络方法 答案就是.....换VirtualBox 噗... VMWare Workstation host-only网络,三台虚 ...

  8. C/C++ Windows移植到Linux

    近期写了有关Socket的程序,需要从windows移植到linux.现把有用的东东收集整理记录下来. 1.头文件windows下winsock.h或winsock2.h:linux下netinet/ ...

  9. 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典

    前面两篇(简单运维1.简单运维2)介绍了一些Windows Server Docker相关的基本运维知识.今天这一篇,Windows Server Dockerfile葵花宝典,涵盖了许多典型场景的W ...

随机推荐

  1. python3.7.1安装Scrapy爬虫框架

    python3.7.1安装Scrapy爬虫框架 环境:win7(64位), Python3.7.1(64位) 一.安装pyhthon 详见Python环境搭建:http://www.runoob.co ...

  2. 领扣(LeetCode)转置矩阵 个人题解

    给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7] ...

  3. static declaration follows non-static declaration

    前段时间工作中要为android编译跨平台的第三方库,遇到了arc4random有关函数的“static declaration follows non-static declaration”问题,那 ...

  4. Opencv的线性滤波和非线性滤波

    线性滤波 :方框滤波   均值滤波  高斯滤波 非线性滤波: 中值滤波  双边滤波 这几个滤波都是起模糊作用 去除噪点 不废话了 下面是代码 #include <opencv2/opencv.h ...

  5. RALM: 实时 Look-alike 算法在微信看一看中的应用

    嘉宾:刘雨丹 腾讯 高级研究员 整理:Jane Zhang 来源:DataFunTalk 出品:DataFun 注:欢迎关注DataFunTalk同名公众号,收看第一手原创技术文章. 导读:本次分享是 ...

  6. Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    前言 在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security.Apache Shiro 等.本文主要简单介绍一下 Spring Security,再通过 ...

  7. 新闻实时分析系统-HBase分布式集群部署与设计

    HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与 ...

  8. [转载] Docker 实现原理

    目录 Namespaces 进程 网络 libnetwork 挂载点 chroot
 CGroups UnionFS 存储驱动 AUFS 其他存储驱动 总结 原文链接:https://dravenes ...

  9. <编译原理 - 函数绘图语言解释器(2)语法分析器 - python>

    <编译原理 - 函数绘图语言解释器(2)语法分析器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 设计思路: 设计函数绘图语言的文法, ...

  10. 【搞定面试官】谈谈你对JDK中Executor的理解?

    ## 前言 随着当今处理器计算能力愈发强大,可用的核心数量越来越多,各个应用对其实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行.在此背景下,Java自JDK1.5 提供了自己的多线程框架 ...