背景

业务需求:优化机器学习,IOT边缘计算性能,替换现有的虚拟机部署方案。

技术背景: .netcore python

Docker 学习资料

Docker中文社区: http://www.docker.org.cn

微软docker文章:http://ruby-china.org/topics/27156

微软docker官方文档: https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/configure-docker-daemon

Windows container部署还要学习下powershell (百度下学习资料)

Windows container Docker 案例

携程.net 容器案例: https://segmentfault.com/a/1190000008169749

携程案例:http://geek.csdn.net/news/detail/64295

Docker 应用案例: http://www.docker.org.cn/docker/122.html

Docker 常用命令

参考资料:http://blog.csdn.net/zhang__jiayu/article/details/42611469

(可百度搜索更多)

容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause]

容器操作运维 — docker [ps|inspect|top|attach|events|logs|wait|export|port]

容器rootfs命令 — docker [commit|cp|diff]

镜像仓库 — docker [login|pull|push|search]

本地镜像管理 — docker [images|rmi|tag|build|history|save|import]

其他命令 — docker [info|version]

Windows container (Docker) 安装

参考文章: http://www.bubuko.com/infodetail-1765950.html

微软文章: https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/configure-docker-daemon

1、安装Container Feature,容器功能角色

可以使用UI,当然也可以用PowerShell:

Install-WindowsFeature containers

Restart-Computer -Force

由于容器本身可以跑在物理机或者虚拟机中,可以顺便把Hyper-V也装了。

2、安装Docker

可以很炫的用PowerShell来拉取Docker引擎:

Invoke-WebRequest "https://get.docker.com/builds/Windows/x86_64/docker-1.12.1.zip" -OutFile "$env:TEMP\docker-1.12.1.zip" –UseBasicParsing

默认解压到C:\Program Files\Docker

Expand-Archive -Path "$env:TEMP\docker-1.12.1.zip" -DestinationPath $env:ProgramFiles

当然,你手动用浏览器什么的https://get.docker.com/builds/Windows/x86_64/docker-1.12.1.zip 下载了自己解压也是没问题的。

然后要配置路径的环境变量:

如果是临时测试,可以用:

$env:path += ";c:\program files\docker"

马上就可以继续后续的PowerShell命令。

如果以后还要用,那就:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Docker", [EnvironmentVariableTarget]::Machine)

重新打开PowerShell。

当然,也可以用传统的CMD Set Path=。。。。来配置。

接下来就要注册Docker Deamon服务了,然后启动docker服务。

dockerd --register-service

Start-Service docker

Windows container Docker 镜像安装

.net(或者说windows) 下面可选择的基础镜像容器操作系统: windows server core 和 nanoserver

Linux等其他平台的镜像比较多

参考: https://hub.docker.com/explore/

而Windows 镜像其实不多

参考:https://hub.docker.com/r/microsoft/

阿里云的镜像服务(国内下载快一些):https://dev.aliyun.com/

来源网上的文章描述:

很多朋友都问过这个问题:我是不是可以在Windows容器服务中运行Linux应用,或者反过来。Docker很厉害,但还木有辣么厉害。你无法在Windows上直接运行Linux进程,同样你也无法在Windows Container中运行Linux进程。这个情况对于以上提到的2中运行时都适用,无论哪种运行时模型,底层操作系统都是Windows,所以你无法运行Linux进程。

这同样意味着,当前Docker Hub上面的大量镜像无法在Windows Container 中使用。微软已经开始在Docker Hub上提供Windows容器镜像,你可以使用同样的docker pull命令或者去这些镜像。比如:microsoft/windowservercore 镜像是一个完整的服务器镜像(大概3G大小),在这个镜像中你可以使用标准的msi安装包,通过Dockerfile来构建你自己镜像,可以安装和运行完整的.net framework和其他的Windows应用程序。microsoft/nanoserver 镜像则是一个精简版的操作系统镜像(大概300M),不提供msi支持,只能运行.net core应用,同时需要使用powershell进行管理。

Windows container Docker 镜像制作

Windows 镜像其实不多,这些可以用来做基础的镜像

参考:https://hub.docker.com/r/microsoft/

阿里云的镜像服务:https://dev.aliyun.com/

Dockfile 镜像制作(建议百度获取更多)

http://www.jb51.net/article/105333.htm

https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/manage-docker/manage-windows-dockerfile

微软制作的一些镜像的脚本

https://github.com/Microsoft/Virtualization-Documentation

网上参考的镜像制作的文章

Node.js镜像 http://chuansong.me/n/509677751556

DoNet Core 镜像 http://www.cnblogs.com/ylsforever/p/5736227.html

Docker 私有仓库建设

微软的仓库或者阿里云的仓库下载docker速度依然是慢,慢,慢。必须要自建仓库!

貌似网上没有windows 的docker搭建私有仓库的例子!貌似有ubuntu, 具体百度吧!

Docker 编排

参考文章:http://www.alauda.cn/2015/09/14/containers-docker-windows-and-trends/

容器编排比较: http://www.infoq.com/cn/news/2017/02/compare-container-orchestration

容器编排比较2:http://www.d1net.com/cloud/news/382913.html

携程.net 容器案例: https://segmentfault.com/a/1190000008169749

携程的案例:Mesos和Kubernetes (似乎涉及代码的改造)

Swarm据说支持windows docker。

微软官方貌似没有 windows container 容器编排的工具支持。

总结

Nanoserver 基础镜像 比较适合.net core的方式部署。(大约200-300M)

Windowservercore 基础镜像 比较适合 windows 旧的应用程序。(大约2-4G)

相反linux docker容器发展相对成熟很多,具体应用案例证明这些(百度下一些大公司的分享),上手更加容易(本身linux 常用shell脚本部署的),围绕linux的容器生态(编排工具,解决方案等),更贴合作为linux开发运维的部署的简化和完善补充。

docker-windows随笔资料整理的更多相关文章

  1. Windows DLL资料整理

    1.使用Visual C++ 6.0创建dll 2. 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) 要点: 1. 如果你的程序中没有涉及可变参数,最好使 ...

  2. F4NNIU 的 Docker 学习资料整理

    F4NNIU 的 Docker 学习资料整理 Docker 介绍 以下来自 Wikipedia Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操 ...

  3. zz 圣诞丨太阁所有的免费算法视频资料整理

    首发于 太阁实验室 关注专栏   写文章     圣诞丨太阁所有的免费算法视频资料整理 Ray Cao· 12 小时前 感谢大家一年以来对太阁实验室的支持,我们特地整理了在过去一年中我们所有的原创算法 ...

  4. 3分钟带你了解PowerShell发展历程——PowerShell各版本资料整理

    本文带你了解PowerShell发展历程,顺便整理了一点资料,方便大家查询. Windows PowerShell® 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计. 在 .NET Fr ...

  5. POI3的资料整理

    转自http://aman.cao.blog.163.com/blog/static/32951336201010823557408/ POI3的资料整理一.POI简介 Jakarta POI 是ap ...

  6. MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

    MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中 ...

  7. iOS 开发学习资料整理(持续更新)

      “如果说我看得比别人远些,那是因为我站在巨人们的肩膀上.” ---牛顿   iOS及Mac开源项目和学习资料[超级全面] http://www.kancloud.cn/digest/ios-mac ...

  8. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

  9. iOS 学习资料整理

    iOS学习资料整理 https://github.com/NunchakusHuang/trip-to-iOS 很好的个人博客 http://www.cnblogs.com/ygm900/ 开发笔记 ...

随机推荐

  1. Windows 7 下快速挂载和分离VHD文件的小脚本

    1.保存以下代码为VDM.vbs,放在Windows\system32下 Dim ArgsSet Args = WScript.ArgumentsTranArgs = " "For ...

  2. POJ 3617 Best Cow Line ||POJ 3069 Saruman's Army贪心

    带来两题贪心算法的题. 1.给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下面两个操作:1.从S的头部删除一个字符,加到T的尾部.2.从S的尾部删除一个字符,加 ...

  3. 【CS Round #48 (Div. 2 only)】Game of Chance

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 在这里写题解 [错的次数] 0 [反思] 在这了写反思 [代码] #include <bits/stdc++.h> using n ...

  4. Web安全之Cookie劫持

    1. Cookie是什么? 2. 窃取的原理是什么? 3. 系统如何防Cookie劫持呢? 看完这三个回答, 你就明白哪位传奇大侠是如何成功的!!! Cookie: HTTP天然是无状态的协议, 为了 ...

  5. (转载)iis7下站点日志默认位置

    转自http://www.cnblogs.com/mincyw/p/3425468.html iis7下站点日志默认位置   在iis6时,通过iis管理器的日志配置可以找到站点日志存储的位置. 但是 ...

  6. 【z05】聪明的质检员

    [题目链接]:http://noi.qz5z.com/viewtask.asp?id=z05 [题解] 显然w越大,最后的Y也就越大; 可以依靠这个搞二分: 如果二分枚举的tw得到的Y比S小,则减小t ...

  7. PBOC

    http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完 ...

  8. [Math Processing Error] 问题的解决(F5刷新页面与 Ctrl/Shift + F5 刷新页面的区别)

    Why is [Math Processing Error] all over the place today? 当打开某页面出现 [Math Processing Error],一般表示 MathJ ...

  9. 使用XX-Net永久访问真正的互联网

    XX-Net基于GoAgent(代理软件),使用谷歌App Engine(GAE)代理服务器通过防火墙,是github上的一个开源项目. https://github.com/XX-net/XX-Ne ...

  10. iOS开发Quartz2D之八:图形上下文状态栈

    #import "DrawView.h" @implementation DrawView - (void)drawRect:(CGRect)rect { // Drawing c ...