老司机实战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种尺寸可 ...
随机推荐
- SQL Server 2008 sp3启用1433端口的方法
SQL Server 2008 SP3一般的默认端口是1433,但有时候会遇到一些问题导致1433端口无法启用.这是笔者给大家指导如何开启1433端口 工具/原料 SQL Server 2008 ...
- 雷锋推到雷峰塔,Java implements Javascript。
最近遇到这么一个问题,如何让用户在软件中自定义函数. 举个例子,使用Java做一个小的监控系统,用户A希望CPU超过90%的时候报警,B用户希望内存超过90%的时候报警,C用户希望CPU超过90%或者 ...
- androidTv界面刷新跳动的问题
今天刚完成老大要求的新模块,在界面刷新的时候遇到了一些问题:一个scrollview动态的添加控件且控件中的数据进行更换的时候,出现的界面跳动的问题 刚开始以为是界面没有展示完全配合scrollvie ...
- ArcGIS制图表达Representation-制图表达介绍
ArcGIS制图表达技术-制图表达介绍 by 李远祥 在基于GIS数据的制图中,大部分都是使用的数据+符号应用的这种模式.这种模式已经被应用很多年,而且也是非常成熟.对应在ArcGIS体系里面,就是数 ...
- 关于sleep()和interrupt()及主线程和线程
看代码 public class TestSleep { public static void main(String args[]) throws InterruptedException{ Thr ...
- Windows下搭建HTTP/HTTPS服务器及测试过程
1 安装Apache http://www.apachehaus.com/cgi-bin/download.plx 选择合适的版本下载 本次下载的是 Apache 2.4.x VC14 Apache版 ...
- Ubuntu 14.04 64bit 系统下打开PHPadmin时出现缺少mysqli|mysql 扩展的解决方法(php5)
网上找了很多方法,都是翻来覆去的抄袭. 都在说把 /etc/php5/apache2/php.ini 下面的 ;extension=php_mysqli.dll 前面的 ; 注释符号去掉 再重启 ...
- bootstrap_下拉菜单+头部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python - bilibili(二)出错的解决办法
在获取房间号之前我们先解决上篇文章遗留的bug,即输入的房间号不是数字和对应的房间号不存在而产生的问题. 输入的房间号不是数字: 在python中,你所输入的必定是字符串,虽然你输入的是数字,但是类型 ...
- 【原创】python中文编码问题深入分析(二):print打印中文异常及显示乱码问题分析与解决
在学习python以及在使用python进行项目开发的过程中,经常会使用print语句打印一些调试信息,这些调试信息中往往会包含中文,如果你使用python版本是python2.7,或许你也会遇到和我 ...
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势