老司机实战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文档,按照它的步骤安装行不行?行。但是,有一些细节,它分散到别的几个页面了,如果你没有都仔细读一下,并亲自体验一下相关功能的话,很可能会遇到一些坑。所以,建议按照下面的步骤:

  1. 安装OneGet的docker provider,问你Yes/No,自然选Y:

    Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
  2. 安装docker包,问你All/Yes/No,选A:

    Install-Package -Name docker -ProviderName DockerMsftProvider
  3. 重启机器
    安装完docker包后,如果你立刻尝试在命令行执行任何docker命令,比如:docker images,会报无法连接服务器错误,原因是,必须重启一下机器。

  4. 重启完机器回来,我们应该已经可以执行比如docker images这样的命令了,不过,有可能你打开一个cmd或者powershell窗口,执行docker images会收到下面的错误,不用慌,那是因为你没有以Adnimistrator模式打开cmd或powershell窗口:

    ...省略... //./pipe/docker_engine: Access is denied ...省略...
  5. 以administrator模式打开powershell窗口,执行docker images,是不是成功了?小兴奋 :)

  6. 下面你想试试pull一个image或者运行一个未曾下载过的image?如果在墙外,应该没问题。绝大多数情况下,在墙内的同学会遇到无法连接docker的服务器错误。什么?有人问什么是“墙”?那个——请自行google一下百度。言归正传,访问不了墙外的,我们就需要访问墙内的镜像,阿里云开发者平台和DaoCloud都提供了免费的docker镜像服务,需要先免费注册一下。

  7. 假设你已经注册了阿里云开发账号或者daocloud账号,拿到比如阿里云的类似https://xxxxxxxx.mirror.aliyuncs.com的地址,我们需要将镜像地址配置到docker服务。请从文件浏览器中打开C:\ProgramData\docker\config目录。注意C:\ProgramData\是一个默认隐藏的目录,直接从C盘浏览是看不到,需要自己地址栏打一下。接下来,我们需要在config目录下新建一个名叫daemon.json的文本文件,包含下面的内容(别忘了将镜像地址替换成你自己的,不然后面报地址不能解析别怪我啊):

    {"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]}
  8. 然后重启docker的windows服务,通过GUI重启,或者,在administrator模式的powershell窗口中执行都可以:

    Restart-Service docker -f
  9. 好了,现在我们可以试着pull或者运行一个docker image了,比如:

    docker run microsoft/dotnet-samples:dotnetapp-nanoserver
  10. 应该可以看到,image成功下载、运行,屏幕打印出下面这个小人:

如果没看到,一定不是我的错啦,肯定是你上面的步骤没看仔细,不如再重新看一遍! 8-)

第一篇就到这里,自己试试其他docker命令吧!

下一篇,我会手把手带大家实战一个

原文地址:http://www.cnblogs.com/teddyma/p/Windows-Server-Docker-1.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core项目从xproj+project.json向csproj迁移简介

3月7日,微软发布了Visual Studio 2017 RTM,与之一起发布的还有.NET Core Runtime 1.1.0以及.NET Core SDK 1.0.0,尽管这些并不是最新版,但也已经从preview版本升级到了正式版。所以,在安装Visual Studio 2017时如果启用…

马踏棋盘算法(骑士周游)+贪心优化

思路分析 代码实现 package com.atguigu.horse;import java.awt.*; import java.util.ArrayList; import java.util.Comparator;public class HorseChessboard {private static int x;//棋盘的列数private static int y;//棋盘的行数//创建一个数组,标记棋盘的各个…

MySQL format()函数

转载自 MySQL format()函数 MySQL FORMAT函数简介 有时,您使用表达式或聚合函数(如AVG)来计算数据库中的值,例如库存周转率,产品的平均价格,平均发票值等。 表达式的结果是十进制数,并带有许多小数位。要格式化这…

马踏棋盘算法(骑士周游)

思路分析 代码实现 package com.atguigu.horse;import java.awt.*; import java.util.ArrayList; import java.util.Comparator;public class HorseChessboard {private static int x;//棋盘的列数private static int y;//棋盘的行数//创建一个数组,标记棋盘的各个…

开源免费的.NET图像即时处理的组件ImageProcessor

承接以前的组件系列,这个组件系列旨在介绍.NET相关的组件,让大家可以在项目中有一个更好的选择,社区对于第三方插件的介绍还是比较少的,很多博文的内容主要还是介绍一些简单的操作(很多人都说博客园现在是“hello worl…

人脸识别活体检测测试案例

最近好多人找我要关于人脸识别活体检测的案例,今天正好有空我就更新一下,先解释一下活体,顾名思义就是看看是否是活人在测检(大白话解说),用技术上的话也就是看看当前操作者是否是在用照片或者其他方法来操…

2016蓝桥杯省赛---java---B---1(有奖猜谜)

题目描述 思路分析 方案一 直接计算器(有手就行的题) 方案二 package com.kuang.study.lanqiao;import java.util.Scanner;public class Main {public static void main(String[] args) {int x777;String str"vxvxvxvxvxvxvvx";for (int i 0; i < str.length()…

Linux+Nginx+Asp.net Core部署

上篇《Docker基础入门及示例》文章介绍了Docker部署&#xff0c;以及相关.net core 的打包示例。这篇文章我将以oss.offical.site站点为例&#xff0c;主要介绍下在linux机器下完整的部署流程&#xff0c;.net core在docker容器中的运行已经介绍&#xff0c;这里.net core运行环…

com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。

今天在做项目的时候&#xff0c;使用的jdbc底层增加&#xff0c;然后出现了个问题&#xff0c;找了好久没有找出来是什么问题&#xff0c;后来在网上查了下&#xff0c;发现别人都说是&#xff1f;写成了中文的了&#xff0c;于是我就返回来看&#xff0c;没看出来&#xff0c;…

ps中对齐,历史记录,图层

一、对齐&#xff1a; 1.激活对齐&#xff1a;视图–》对齐 2.新建一个文件&#xff0c;然后置入一张图片&#xff0c;设置一个参考线&#xff0c;使用移动工具进行移动&#xff0c;当移动到参考线附近的时候图片会自己吸到参考线上。 3.移动到参考线的时候如需设置空隙&…

Docker基础入门及示例

Docker近几年的发展可谓一日千里&#xff0c;特别从是2013年随着一个基于LXC的高级容器引擎开源&#xff0c;到现在&#xff0c;其在linux和windows上都有了很好的支持&#xff0c;并且已经有很多公司将docker用于实际的生产环境部署当中。这篇文章我将针对以下几个方面简单介绍…

2016蓝桥杯省赛---java---B---3(平方怪圈)

题目描述 思路分析 代码实现 package com.kuang.study.lanqiao;public class Main {public static void main(String[] args) {int start0;int cnt0;//循环的次数for (int i 2; i < 100; i) {starti;while (cnt<1000){System.out.println(start);String astart"&q…

PS仿制图章工具、油桶工具、渐变

一、仿制图章工具&#xff1a; 1.找到仿制图章工具&#xff0c;或者按快捷键s&#xff0c;选择需要仿制的内容&#xff0c;按住alt,然后找到需要放置的地方&#xff0c;鼠标拖动即可完成仿制。 一、油桶工具&#xff1a; 1.激活&#xff1a;快捷键&#xff1a;G 2.选择需要…

使用 Visual Studio 对源代码文件进行哈希处理以确保文件完整性

对所有编译的软件语言来说&#xff0c;将人类可读代码转换成计算机可读代码都是一项软件保障挑战&#xff1a; 用户如何有信心相信在其计算机上运行的软件程序是根据开发者创建的同一源代码文件生成的呢&#xff1f; 这不一定&#xff0c;即使源代码文件经过行业专家评审&#…

php 输出01,php基础01_thinkphp输出Hello World-Go语言中文社区

用phpstorm和mamp搭建好php开发环境后&#xff0c;就来体验一下thinkPHP的输出过程1.下载thinkphp3.2.3版本框架&#xff0c;将其放入本地主机MyPhp文件夹中thinkphp3.2.3所包含的目录内容如下&#xff1a;目录对应文件为&#xff1a;composer.json:PHP组件的依赖管理器index.p…

人脸识别活体检测之眨眨眼和张张嘴

【这段时间有点忙&#xff0c;终于截止今天2018.06.22完成了人脸识别的最后一道程序——活体检测之眨眨眼和张张嘴】 关于人脸识别的内容我之前也写过好几篇博文&#xff0c;其中有&#xff1a; {java实现人脸识别源码} {C#winforms实现windows窗体人脸识别} {人脸识别活体检测…

工作效益问题

图解 代码实现 package com.kuang.study.lanqiao;public class Main {public static void main(String[] args) {int n8;//机器人个数int[] pre{0,0,0,0,1,0,2,3,5};//选择这个工作后的其那句最近工作下标int[] profit {5,1,8,4,6,3,2,4}; //工作收益int opt[]new int[n1];op…

amazon php 空间,(四)Amazon Lightsail 部署LAMP应用程序之扩展PHP前端

扩展PHP前端既然PHP前端和数据库是分开的&#xff0c;您将为Web层添加可伸缩性和容错性: 在以下步骤&#xff0c;您将获取Web前端实例的快照&#xff0c;并从该快照部署另外2个Web层实例。最终&#xff0c;您将在三个Web实例前面添加一个负载均衡器。至此&#xff0c;您将拥有一…

相邻数字+(正月点灯笼的动态规划2)(递归+DP)---JAVA

思路分析 代码实现 递归实现 package com.kuang.study.lanqiao;public class Main {public static void main(String[] args) {int arr[]{1,2,4,1,7,8,3};int max d(arr,arr.length-1);System.out.println(max);}public static int d(int[] arr,int n){if(n0){return arr[0]…

.NET Core Tools 1.0 版本

与上周发布的Visual Studio 2017一起&#xff0c;微软还发布了.NET Core Tools 1.0。这些工具对所有.NET核心开发人员都非常有用&#xff0c;无论他们使用VS2017、Visual Studio for Mac、Visual Studio Code&#xff0c;还是基于他们自己选择的非微软IDE。 对于想要使用.NET C…