老司机实战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,是不是成功了?小兴奋 :)
下面你想试试pull一个image或者运行一个未曾下载过的image?如果在墙外,应该没问题。绝大多数情况下,在墙内的同学会遇到无法连接docker的服务器错误。什么?有人问什么是“墙”?那个——请自行google一下百度。言归正传,访问不了墙外的,我们就需要访问墙内的镜像,阿里云开发者平台和DaoCloud都提供了免费的docker镜像服务,需要先免费注册一下。
假设你已经注册了阿里云开发账号或者daocloud账号,拿到比如阿里云的类似https://xxxxxxxx.mirror.aliyuncs.com的地址,我们需要将镜像地址配置到docker服务。请从文件浏览器中打开C:\ProgramData\docker\config目录。注意C:\ProgramData\是一个默认隐藏的目录,直接从C盘浏览是看不到,需要自己地址栏打一下。接下来,我们需要在config目录下新建一个名叫daemon.json的文本文件,包含下面的内容(别忘了将镜像地址替换成你自己的,不然后面报地址不能解析别怪我啊):
{"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]}
然后重启docker的windows服务,通过GUI重启,或者,在administrator模式的powershell窗口中执行都可以:
Restart-Service docker -f
好了,现在我们可以试着pull或者运行一个docker image了,比如:
docker run microsoft/dotnet-samples:dotnetapp-nanoserver
应该可以看到,image成功下载、运行,屏幕打印出下面这个小人:
如果没看到,一定不是我的错啦,肯定是你上面的步骤没看仔细,不如再重新看一遍! 8-)
第一篇就到这里,自己试试其他docker命令吧!
下一篇,我会手把手带大家实战一个
原文地址:http://www.cnblogs.com/teddyma/p/Windows-Server-Docker-1.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
老司机实战Windows Server Docker:1 初体验之各种填坑相关推荐
- 老司机实战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 Docker:3 单节点Windows Docker服务器简单运维(上)
经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
前言 上一篇老司机实战Windows Server Docker:1 初体验之各种填坑介绍了安装docker服务过程中的一些小坑.这一篇,我们来填一些稍大一些的坑:如何docker化一个现有的iis应 ...
- Windows Server 8 Beta 初体验之三 Active Directory
Windows Server系统,随着版本的升级,很多功能越来越依赖于Active Directory,越来越离不开Active Directory,所以在体验Windows Server 8 Bet ...
- Windows Server 8 Beta 初体验之二:Hyper-v
Windows Server 8 Beta 和以往的Server操作系统比较,最大的变化就是没有了开始菜单,开始菜单由服务器管理器所代替,从操作感受上来讲,以往的Server操作系统基本上由四部分组成 ...
- 服务器重装2012,Windows Server 2012安装初体验
最近微软先行放出发布了下一代Windows服务器版本windows server 2012,笔者下载下来测试安装了,相对于windows server 2008,确实有许多细节方面的改进.我是通过vm ...
- 老毛桃还原windows server 2012 R2服务器
背景 重启了一下windows server 2012 R2,导致无法进入系统. 一直处于重新启动状态,总是出现"你的电脑遇到问题,需要重新启动"的提示. 也无法进入完全模式.无法 ...
- 基于Windows Server 2019域环境体验Veeam ONE 10安装
基于Windows Server 2019域环境体验Veeam ONE 10安装 https://www.charflower.com/?p=1722 2020-02-20 by BOBtm 安装IS ...
最新文章
- 用C语言解“BCD解密”问题
- sql server 2008手工修改表结构,表不能保存的问题与解决
- research paper for management science
- 【面试锦囊】14种模式搞定面试算法编程题(1-7)
- c++ 特定容器算法(sort,merge,reverse,remove,unique)
- openshift学习_在OpenShift上将JMS与JBoss A-MQ结合使用。 学习了有关远程客户端和加密的经验。...
- C++ 构造函数 与 析构函数
- ht1621b和单片机电平匹配_基于HT1621B段式液晶模块的驱动应用
- 技术大佬:我去,你写的 switch 语句也太老土了吧!
- 单链表的基本操作---插入,删除,交,并,相邻元素的交换等
- python机器学习库sklearn——岭回归(Ridge、RidgeCV)(L2正则化)
- 将自己的数据制作成cityscape格式
- 分享一个编程学习网站——并发编程网
- android适配器
- kmeans python interation flag_机器学习经典算法-logistic回归代码详解
- reactos操作系统实现(6)
- Google Play上架App设置隐私政策声明问题
- 一颗病毒大小的新型分子或可帮助人类找到暗物质
- vscode远程连接服务器失败的问题
- 云服务器能共享文件夹,云服务器能共享文件夹