Docker for Windows使用简介
在上一篇文章中,通过演练指导的方式,介绍了在Docker中运行ASP.NET Core Web API应用程序的过程。本文将介绍Docker for Windows的使用。
先决条件
前两周时间,Docker发布了Docker for Windows的正式版,于是就可以在Windows下运行Docker容器了。要在Windows下运行Docker,需要满足以下先决条件:
- 64位Windows 10 Pro、Enterprise或者Education版本(Build 10586以上版本,需要安装1511 November更新)
- 在系统中启用Hyper-V。如果没有启用,Docker for Windows在安装过程中会自动启用Hyper-V(这个过程需要重启系统)
不过,如果不是使用的Windows 10,也没有关系,可以使用Docker Toolbox作为替代方案。
Docker for Windows的安装与使用
在Windows 10中,请点击此处下载Docker for Windows的安装包,然后开始安装。正如上面所述,如果Hyper-V没有启用,安装过程会自动启用Hyper-V,这将需要重新启动Windows系统。安装完成后,就可以在Windows下使用Docker了。
启动Docker for Windows,会在系统托盘部分显示一条小鲸鱼的图标:。在Docker完全启动之前,小鲸鱼背上的小方块会不停地闪烁变化,等小方块稳定不变后,表示系统完全启动成功,此时就可以对Docker的环境进行设置,或者开始执行Docker命令了。
Docker环境的设置
右键单击系统托盘上的小鲸鱼图标,选择Settings菜单:
此时将打开Settings对话框:
该对话框主要包含了针对运行Docker Daemon的虚拟环境的配置,以及对Docker Daemon的配置。包括:
- Shared Drivers:可以将主机(也就是Windows机器)中的驱动器共享到Docker Container中
- Advanced:用于配置运行Docker Daemon的虚拟环境的CPU和内存
- Network:配置Docker的网络环境
- Proxies:代理的配置
- Docker Daemon:使用JSON格式的设置,对Docker Daemon进行配置,类似于在Linux环境中使用conf文件对Docker进行配置
其实,Docker for Windows的安装过程会在Hyper-V中创建一台用于运行Docker Daemon的Linux虚拟机,这个对话框中的很多配置也就是针对该虚拟机所作出的配置。当配置发生更改后,Docker for Windows会重新启动(小鲸鱼背上的小方块又会动起来),这个过程其实就是这台Linux虚拟机的配置进行动态调整和重启的过程。例如,从下图可以看到,我将我自己的Docker设置为1个CPU和1GB的内存,这个配置会应用到Hyper-V的这台虚拟机上:
如果在Windows 10以前版本的Windows中安装Docker Toolbox,就需要确保Windows系统支持硬件虚拟化技术(HVT):
- 如果是使用的Windows 8或者8.1:在任务管理器中,选择“性能”标签页,然后在CPU一栏,查看“虚拟化”(Virtualization)一项是否已经启用
- 如果是Windows 7,请下载并执行Microsoft Hardware-Assisted Virtualization Detection Tool来查看系统是否满足条件
同时,还需要确保Windows系统是64位的。有关Docker Toolbox的更多信息,请参考官方网站的详细说明。
运行Docker命令
在Docker for Windows成功启动后,就可以在Windows命令提示符下执行Docker命令了,也可以在Power Shell中执行Docker命令,看个人喜好吧。Docker CLI的体验和Linux下是一样的。
使用Docker for Windows在容器中运行ASP.NET Core Web API应用程序
我们仍然使用前面这篇文章中所发布的那个ASP.NET Core Web API应用程序,也仍然使用那个Dockerfile文件。现在,首先确保Dockerfile文件与发布出来的DockerWebAPI应用程序的文件都在同一个目录下:
然后执行:
docker build -t daxnet/docker-webapi .
将看到以下结果(当然,之前已经执行过一次了,所以基本上每一步的Image都是从缓存里取的):
与Linux下编译Docker Image相比,这里多了一个安全警告。这是因为我们是在Windows下使用部署在非Windows中的Docker服务来完成的Image的编译生成,两套系统中的文件权限设置不同。Docker for Windows建议在编译生成的Image上对文件的权限进行检查以确保安全。
接下来测试一下刚刚生成的Docker Image。执行:
docker run -it -p 8080:5000 daxnet/docker-webapi
将得到下面的效果:
测试一下:
效果跟前一篇文章的效果一样。
总结
本文对Docker for Windows进行了简单的介绍,并使用上一篇文章的案例,在Docker for Windows上运行了ASP.NET Core Web API应用程序。后文我还将介绍有关Docker使用的一些内容,还会继续结合ASP.NET Core Web API来讲解RESTful服务的容器化(Dockerization)与部署。
Docker for Windows使用简介的更多相关文章
- Docker for Windows
Docker for Windows使用简介 在上一篇文章中,通过演练指导的方式,介绍了在Docker中运行ASP.NET Core Web API应用程序的过程.本文将介绍Docker for Wi ...
- Windows 下 Docker 的简单学习使用过程之二 Docker For windows
1. Docker For windows 最新版也支持到了 docker ce 18.06 (这个博客的编写时间是 2018.8.17 当时是最新的) 2. 下载安装. 大概500m 左右的安装文件 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...
- 关于docker在windows环境下运行的第一次体验
关于docker在windows环境下执行的原理 1.1. 首先是Docker Quickstart启动,如果在虚拟机Oracle VM VirtualBox不存在default虚 ...
- 初识Docker和Windows Server容器
概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...
- 解决 docker on windows下网络不通
问题:公司有一台闭置的windows服务器,于是想利用起来,但是在启动容器后始终无法通信成功. 研究: 1. 发现安装包中包含virtualbox, 于是怀疑windows下的docker是在virt ...
- ASP.NET Core 2.0 in Docker on Windows Container
安装Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows 要想将一个ASP. ...
- Docker for Windows 使用入门
欢迎来到Docker for Windows! Docker是用于创建Docker应用程序的完整开发平台,Docker for Windows是在Windows系统上开始使用Docker的最佳方式. ...
- Windows 10 安装 Docker for Windows
Docker for Windows是Docker社区版(CE)应用程序. Docker for Windows安装包包括在Windows系统上运行Docker所需的一切. 本主题介绍了预安装注意事项 ...
随机推荐
- Android中手机录屏并转换GIF的两种方式
之前在博文中为了更好的给大家演示APP的实现效果,本人了解学习了几种给手机录屏的方法,今天就给大家介绍两种我个人用的比较舒服的两种方法: (1)配置adb环境后,使用cmd命令将手机界面操作演示存为视 ...
- redis 学习笔记(1)
redis持久化 snapshot数据快照(rdb) 这是一种定时将redis内存中的数据写入磁盘文件的一种方案,这样保留这一时刻redis中的数据镜像,用于意外回滚.redis的snapshot的格 ...
- 如何在网页中提取Email地址
开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点 ...
- [原] Cgroup CPU, Blkio 测试
关于Cgroup的简单测试 [toc] 简单介绍Cgroup (如果对cgroup熟悉可以忽略) 一般情况下,cgroup挂载到一个虚拟文件目录,然后可以通过文件系统的API对其操作. ># m ...
- 在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验
准备工作 本篇文章采用Mono+CentOS+Jexus的方式实现部署.Net的Web应用程序(实战,上线项目). 不懂Mono的请移步张善友大神的:国内 Mono 相关文章汇总 不懂Jexus为何物 ...
- Java中用得比较顺手的事件监听
第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点( ...
- MyBatis源码分析(二)语句处理器
StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...
- 跟着老男孩教育学Python开发【第四篇】:模块
双层装饰器示例 __author__ = 'Golden' #!/usr/bin/env python # -*- coding:utf-8 -*- USER_INFO = {} def ch ...
- ELK分析IIS日志
LogStash.conf input { file { type => "iis_log" path => ["C:/inetpub/logs/LogF ...