zoukankan      html  css  js  c++  java
  • docker-windows随笔资料整理

    背景

    业务需求:优化机器学习,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:TEMPdocker-1.12.1.zip" –UseBasicParsing

    默认解压到C:Program FilesDocker

    Expand-Archive -Path "$env:TEMPdocker-1.12.1.zip" -DestinationPath $env:ProgramFiles

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

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

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

    $env:path += ";c:program filesdocker"

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

    如果以后还要用,那就:

    [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:Program FilesDocker", [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开发运维的部署的简化和完善补充。

  • 相关阅读:
    自学人工智能之数学篇,数学入门并不难
    2018-8-10-win10-uwp-使用资源在后台创建控件
    2019-9-2-win10-uwp-弹起键盘不隐藏界面元素
    2019-7-31-程序猿修养-日志应该如何写
    2018-11-19-WPF-在image控件用鼠标拖拽出矩形
    2019-8-31-C#-如何给-ValueTuple-返回值添加注释
    2019-11-12-浅谈-Windows-桌面端触摸架构演进
    2018-8-10-win10-uwp-打开文件管理器选择文件
    2018-8-10-win10-uwp-验证输入-自定义用户控件
    2019-8-31-dotnet-特性-DynamicallyInvokable-是用来做什么的
  • 原文地址:https://www.cnblogs.com/hank-hu/p/9656806.html
Copyright © 2011-2022 走看看