老司机实战Windows Server Docker:1 初体验之各种填坑
前言
Windows Server 2016正式版发布已经有近半年时间了,除了看到携程的同学分享了一些Windows Server Docker的实践经验,网上比较深入的资料,不管是中文或英文的,都还不太多。工作中对Windows Server 2016下的Docker,也评估了一段时间了,特此做一些分享,帮助大家填坑。本系列的讨论主要关注Windows Server 2016下的原生Docker容器,不涉及Hyper-V模式的容器。
准备
既然是Windows Server 2016下的Docker,首先我们要安装Windows Server 2016环境。条件允许的话,还是推荐使用物理机,因为实际使用中,直接在物理机操作,一方面响应更快,也能减少不必要的虚拟机软件本身的兼容性问题。如果,条件实在不允许,想要使用虚拟机的话,建议使用VMWARE系列。最新的VMWARE vSphere 6.5+, Fusion 8.5+和Workstation 12.5+下亲测都没问题,分配4G以上内存即可,整体系统响应还能接受。建议别在Hyper-V下安装,不然真会慢到怀疑人生的。
如果想使用Vagrant安装,可以使用jacqinthebox/windowsserver2016和stefanscherer/windows_2016_docker这两个box。不过,vagrant box国内网络下载速度超慢,反而微软官网的下载速度还行,所以其实自己下载试用版的Windows Server 2016的ISO安装也花不了多少时间。
那么,假设你已经有了一个全新安装的Windows Server 2016带GUI的系统,并且已经安装了全部更新补丁,下面就正式开始我们的Windows Server Docker之旅。
安装Docker服务
安装docker服务一般都会参考微软官方的quickstart windows server文档,按照它的步骤安装行不行?行。但是,有一些细节,它分散到别的几个页面了,如果你没有都仔细读一下,并亲自体验一下相关功能的话,很可能会遇到一些坑。所以,建议按照下面的步骤:
- 安装OneGet的docker provider,问你Yes/No,自然选Y:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
- 安装docker包,问你All/Yes/No,选A:
Install-Package -Name docker -ProviderName DockerMsftProvider
- 重启机器
安装完docker包后,如果你立刻尝试在命令行执行任何docker命令,比如:docker images,会报无法连接服务器错误,原因是,必须重启一下机器。 - 重启完机器回来,我们应该已经可以执行比如docker images这样的命令了,不过,有可能你打开一个cmd或者powershell窗口,执行docker images会收到下面的错误,不用慌,那是因为你没有以Adnimistrator模式打开cmd或powershell窗口:
...省略... //./pipe/docker_engine: Access is denied ...省略...
- 以administrator模式打开powershell窗口,执行docker images,是不是成功了?小兴奋
老司机实战Windows Server Docker:1 初体验之各种填坑的更多相关文章
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
前言 上一篇老司机实战Windows Server Docker:1 初体验之各种填坑介绍了安装docker服务过程中的一些小坑.这一篇,我们来填一些稍大一些的坑:如何docker化一个现有的iis应 ...
- 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)
经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...
- 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典
前面两篇(简单运维1.简单运维2)介绍了一些Windows Server Docker相关的基本运维知识.今天这一篇,Windows Server Dockerfile葵花宝典,涵盖了许多典型场景的W ...
- 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)
上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...
- windows server服务器上mysql远程连接失败的坑
windows server服务器上mysql远程连接失败的坑 背景:趁这阿里云活动,和朋友合伙买了个服务器,最坑的是没想到他买的是windows Server的,反正便宜,将就着用吧,自己装好了wa ...
- Windows Embedded Compact 7初体验
Windows Embedded Compact 7初体验 Windows Embedded Compact 7已经出来半年多了,一直没时间搞.最近它又出了Refresh的版本,电脑也换了个1T的硬盘 ...
- 实战 Windows Server 2012 群集共享卷
群集共享卷,简单理解就是一个针对Hyper-V优化的一个分布式访问文件系统,群集中的节点可以同时写到一个磁盘,并且是受控访问,以避免写数据的冲突.此功能和Vmware 的VMFS是类似的.此功能从W ...
- dubbo实战之一:准备和初体验
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Windows 8.1 RTM初体验
Windows 8.1正式发布在10月17日,现在可以在MSDN/TechNet进行订阅下载. 操作系统版本号和Windows Server 2012 R2保持一致. 开始屏幕动态磁贴现在有4种尺寸可 ...
随机推荐
- KB奇遇记(8):好人难做
题记:<KB奇遇记>已经更新到第八篇了.这一篇主要是讲项目实施过程中项目组成员之间的关系,也是我最不愿意回忆和讲述的事情. 早在来到KB公司的第一天开始,我就一直兢兢业业,丝毫不敢怠慢.面 ...
- vue1.0学习总结
前言 使用vue已经有三.四个月了,但是只是学着使用了一些基本方法.因为现在的前端框架越来越多(Angular,React...),但是我相信万变不离其宗,很多用法框架之间还是想通的,所以借总结的vu ...
- Professional C# 6 and .NET Core 1.0 - 37 ADO.NET
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 37 ADO.NET -------- ...
- Bootstrap WPF Style(二)--Glyphicons 字体图标
介绍 关于Glyphicons字体图标,首先给出友情链接 Glyphicons 这个项目是在Bootstrap WPF Style项目基础上做的,详见http://www.cnblogs.com/ts ...
- Java字符串之String与StringBuilder
String与SringBuiler的一些比较 在Java中,我们会大量使用字符串,但是String究竟是怎样工作的我们可能没有想过太多,其实在String类中,每一个看起来会修改String值的 ...
- Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Services
本文内容为转载,供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 39 Windows Servi ...
- java二维数组学习(转)
转自:http://blog.csdn.net/java1992/article/details/5808709,在这里谢过了 /* * java学习: * 二维数组的使用: */public cla ...
- Ajax异步获取html数据中包含js方法无效的解决方法
页面上使用js写了一个获取后台数据的方法 function data() { var tab = $("#dic") $.ajax({ url: '../demo.ashx?met ...
- IntelliJ IDEA 2016.1.4 git 切换分支详解
参考网址: http://cache.baiducontent.com/c?m=9d78d513d9981de90fb3ca255501d7174202d7743da7c7647ac3e54a8414 ...
- Javascript面对对象. 第二篇
但是还有一个问题,就是识别的问题,因为根本无法搞清楚他们到底是哪个对象的实例. 1.构造函数 function CreateObject(name,age){ //创建一个对象,使用构造函数的对象都是 ...
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势