美好的事物总是来自不易,而我是一个docker新手


 

从以上开场,请各位follow me站在一个初学者的角度,一步一步用最简单的视角审视docker和它的真实存在

上篇预告:Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO)下篇dockerの奥义 我提到了今天这篇随笔的内容,虽然不出意外,但是...但是亮点总在最后

XFS提供了很好的并发性能,而docker又以轻量级的虚拟化容器著称,两者结合会插出怎么样的水花呢

嗯,在我的环境里,非常流畅,不同于甲骨巨婴VBOX, Vmware在负荷下CPU调度妥贴,丝毫感受不到虚拟机的存在,跑题了,这句下上文异常

从XFS出发,首先需要一个额外的虚拟存储,那么怎么制作XFS disk呢...此处省略500字...so far so good...XFS disk制作好了,那么相比单存储又有什么优势呢...一个问题接一个问题...那就是docker-machine rm default后所有的images containers volumes etc.并不丢失呢

以下是案例教学:

有一位网友发了一条信息给boot2docker官方,内容如下

after update boot2docker.iso,my data lost

这位网友的头像是这样的:

为了杜绝此类悲剧再次上演,请合理布局docker 😄

在下面这张图片里,额外的虚拟存储被使用,最关键的是它的路径和docker无关,所以即便docker被完整删除,所有的资料还可以保存下来

以下的图片是Vmware中的详细配置,请注意重点圈注的内容,后续会提到

 

按照预告的内容,符合新手的下一步,一定必定肯定是pull一个container来划划水

嗯?应该是image更为确切,但是docker的cli有一个很简化的命令run,连pull带run,很好呢

用一个最简单的命令就可以夯出水花哦 -> docker run -v /mnt/hgfs/Users/:/home -itd mcr.microsoft.com/dotnet/core/runtime:latest bash

嗯,这条命令一共花了三个小时,这可是满城千兆的时尚之都,mcr.microsoft.com是从ISP拿到的IP,三小时后,我从朦胧睡意中醒来,大惊,retry...retry...retry的日志试图在证明docker很无辜

往日下一些大片速度都是杠杠的,怎么碰到mcr.microsoft.com,突然变了呢

把曾经美好的印象一下子仿佛失去了色彩

过去或者将来我都会很耿直的直连mcr.microsoft.com,并不是我很傻很天真,只是出于一个求知者必经的求实

上dockerhub,pull一个runtime三小时出成绩很好呢

忘了顺便提一句,在powershell里是这样的,用bash要//. 这样就可以访问user(hosthome)了,鼠标点击图片的左侧圈注,请把c:\users改为其他目录,熟悉Windows的我们一定对这个目录相当的敏感,告别c:\users从点点滴滴做起

三个小时后我打出了dotnet new, 然后想了一想,这是runtime!!!一语惊醒梦中人,放弃,打出--version,嗯?

忘了attach, bash的minitty果不其然,不如powershell

 

  It was not possible to find any installed .NET Core SDKs

  Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:

      https://aka.ms/dotnet-download

 

Host (useful for support):

  Version: 3.1.0

  Commit:  157910edee

 

.NET Core SDKs installed:

  No SDKs were found.

 

.NET Core runtimes installed:

  Microsoft.NETCore.App 3.1.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

 

To install additional .NET Core runtimes or SDKs:

  https://aka.ms/dotnet-download

这就是所有的--info,一阵眩晕我又倒下睡了

彻夜无梦......

按照预告的内容,写到这里应该也快到尾声了,无意发现的0-3.boot2docker.pool.ntp.org的ntp请求,好像也不能改,毕竟是人家官方的branding bits

好了,整理一下从一个命令出发需要整理的知识点

  1.  shareName, hostDir, shareDir 分别对应 "Users", "C:\\Users", "/hosthome"
  2.  从rcS出发到tc-config到bootsync.sh到bootsync.sh(2)到bootlocal.sh,ntpd牢牢地卡在最前方,没有pre-script可以inject
  3. 即使三个小时retry,docker毅然的坚挺,值得肯定

然后就很华丽不是吗???

这不是你期待的吗???

我是一个docker新手,于是我开始了第一个dockfile, 这将是???

说起这张图,在起初的5分钟(第一次气定神闲的打出docker build不带T),我是一名很好,很懒的新手,我什么都不想干,什么都不想做,什么都不想理,但是5分钟过去了,我看了看进度,突然

一个idea出现了!!!

于是我看了很多404,很多很多404,而这些404在下一个瞬间又会变成200,这就是著名的...

Schrödinger's "Cat 404"

在漫漫的等待后,我又看到了一张新的图

请记住这张图,请不要伸手索要,KERNEL_CONFIG变了,TINY LINUX变了,VM CLIENTS变了

终于彻底的移除了巨婴VBOX的支持,升级了VMWARE的版本,然后还有什么我想想...0-3.boot2docker.pool.ntp.org???做人要厚道,怎么可以对这么好用的boot2docker branding下手!!!

最后密码当然是和driver一起

变了

变了

变了

。超级便便便

好像不经意间用了CentOS的efiboot做了一个UEFI和BIOS都支持的ISO,成功的进入了...grub,验证了fat image的合理性,BIOS是完美的

在篇末隆重宣告后续の补完篇  :UEFI制作

 

数一数我的第一:

第一次MAKE linux的项目是(不是hello world噢):

"大概是世界上最好的支持最古老的ARM LINUX系统的aria2,版本1.34.0,修改了最大连接数,RPC限制2个以上的网络接口 "

第一次MAKE linux的OS是 (不是redhat噢):

全世界仅有的唯一最高LINUX版本的白菜路由,支持NAND记

第一次MAKE dockerfile是?

本篇带给你全新的感受了吗???