阿里云Windows Server 2016环境Docker试用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 前文我们介绍过在本地Windows10环境中,基于Hyper V容器的Docker使用。现在阿里云已经提供了Windows Server 2016支持,我们来亲自体验一下原生的Windows Server容器吧。

14898399945171

前文我们介绍过在本地Windows10环境中,基于Hyper V容器的Docker使用。现在阿里云已经提供了Windows Server 2016支持,我们来亲自体验一下原生的Windows Server容器吧。

系列文章

Windows Server容器与Linux容器非常类似,都是通过命名空间、资源控制等技术实现进程隔离。每个Windows Server容器都与宿主机共享同一个内核。与HyperV容器相比,它的启动速度更快、资源消耗更低。但是Hyper V容器可以借助虚拟化技术提供更好的隔离性。

创建Windows Server 2016 ECS实例

注:由于微软的基础操作系统镜像在大陆下载非常缓慢,建议选择香港区域做实验。

首先我们创建一个Windows Server 2016,请选择型号III的规格,并选择“Windows Server 2016 数据中心版”操作系统镜像。由于Windows镜像都比较大,建议扩大系统盘容量。

14898079126209

创建安全组

因为我希望通过Windows Remote Desktop来访问ECS实例,需要在公网入方向开放RDP端口3389。其配置方法如下:

-w340

-w340

注:从安全角度出发,请按需配置需要对外暴露的端口。

安装配置 Docker Engine

可以访问 Docker Store 来查看安装Windows Server 2016操作系统的Docker Engine说明

14898086313331

在Windows Server的PowerShell中,执行如下命令安装Docker-Microsoft的包管理实现

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
AI 代码解读

再安装Docker Engine安装包

Install-Package -Name docker -ProviderName DockerMsftProvider
AI 代码解读

完成之后,请执行下面命令重启服务器

Restart-Computer -Force
AI 代码解读

重启完毕,我们就可以通过如下命令查看 Docker Engine 的状态了。

PS C:\Users\Administrator\test> docker version
Client:
 Version:      17.03.0-ee-1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   9094a76
 Built:        Wed Mar  1 00:49:51 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.0-ee-1
 API version:  1.26 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   9094a76
 Built:        Wed Mar  1 00:49:51 2017
 OS/Arch:      windows/amd64
 Experimental: false

PS C:\Users\Administrator\test> docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 2
Server Version: 17.03.0-ee-1
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: l2bridge l2tunnel nat null overlay transparent
Swarm: inactive
Default Isolation: process
Kernel Version: 10.0 14393 (14393.576.amd64fre.rs1_release_inmarket.161208-2252)
Operating System: Windows Server 2016 Datacenter
OSType: windows
Architecture: x86_64
CPUs: 2
Total Memory: 8 GiB
Name: iZe647ugnmkmq4Z
ID: GMM4:K4QA:KYIC:6KFD:42KP:LKAJ:BNIY:QR7P:GHVH:MRCQ:PGDL:2ZKI
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
AI 代码解读

这里我们可以看到服务器端操作系统/架构(OS/Arch)为“windows/amd64”;而容器的“缺省隔离方式”(Default Isolation)为进程 “process”也就是Windows Server Container

配置Docker Hub加速器 (可选)

注:如果ECS部署在国内Region,可以需要配置Docker Hub加速器。在香港和海外Region无需如下配置。

访问 https://cr.console.aliyun.com 获得加速器地址

14897515725110

在PowerShell中执行如下命令

C:\Windows\notepad.exe C:\ProgramData\docker\config\daemon.json
AI 代码解读

编辑Docker Engine的配置文件,详细配置可以参见官方文档

{
   "registry-mirrors": ["https://xxxx"]
}
AI 代码解读

重启Docker Engine

Restart-Service docker
AI 代码解读

注:微软的系统镜像中的层文件并不保存在Docker Hub之上,在国内访问非常痛苦,即使配置了阿里云加速器也无法提升传输效率。可以通过docker save/load的方式加载操作系统基础镜像。

体验Windows Server容器

在测试目录创建如下Dockerfile文件,它会在微软IIS镜像的基础上,添加一个"index.html"

FROM microsoft/iis
RUN echo "Hello World - Windows Container" > c:\inetpub\wwwroot\index.html
AI 代码解读

构建Docker镜像,并命名为 "myiis"

docker build -t myiis .
AI 代码解读

执行如下命令,启动

docker run -d -p 80:80 myiis

我们利用浏览器打开ECS主机的地址,就可以看见我们生成的网页了。 (注,需要在安全组配置中创建HTTP协议的公网入方向配置)

-w340

选择隔离级别

Docker从1.12版本之后提供了 isolation 参数,可以由用户选择不同的隔离机制

      --isolation string                      Container isolation technology
AI 代码解读

比如,在Windows环境可以用如下命令分别以 Windows Server Container 和 HyperV 的隔离方式执行 IIS

docker run --isolation=process -d microsoft/iis
docker run --isolation=hyperv -d microsoft/iis
AI 代码解读

阿里云环境中,Windows Server本身就是运行在虚拟化环境中,所以目前不支持 HyperV 的容器运行时。

由于Windows Server Container和操作系统共享内核所以它只能运行Windows操作系统镜像,而不能运行Linux的镜像。

总结

在阿里云上利用Windows Server 2016和Docker技术可以敏捷地交付Windows应用,对于企业用户而言有着重要的意义。在之后的文章中,我们会逐渐介绍Windows容器的其他特性比如Swarm模式集群支持等。

阿里云容器服务也在计划提供对Windows容器的支持,了解更多容器服务内容,请访问 https://www.aliyun.com/product/containerservice

目录
打赏
0
1
0
9
80333
分享
相关文章
|
2天前
|
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
36 4
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
21 4
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
|
1月前
|
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
60 11
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
|
1月前
|
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)
87 7
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)
Docker Desktop 4.38 安装与配置全流程指南(Windows平台)
Docker Desktop 是容器化应用开发与部署的一体化工具,支持本地创建、管理和运行 Docker 容器。4.38 版本新增 GPU 加速、WSL 2 性能优化和 Kubernetes 1.28 集群管理功能,适用于微服务开发和 CI/CD 流水线搭建。安装要求为 Windows 10 2004 及以上(64 位),需启用 Hyper-V 或 WSL 2。硬件最低配置为 4GB 内存、20GB 存储和虚拟化技术支持的 CPU。安装步骤包括启用系统功能、下载并运行安装程序,完成后配置镜像加速并验证功能。常见问题涵盖 WSL 2 安装不完整、磁盘空间清理及容器外网访问等。
1042 13
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
Windows Server 2019 中文版、英文版下载 (2025 年 2 月更新)
Windows Server 2019 中文版、英文版下载 (2025 年 2 月更新)
73 22
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
76 1
Windows Server 2025 Active Directory 重置用户密码
密码重置是管理员日常任务之一,用户因忘记或多次输错密码导致账户锁定时需进行重置。本文介绍在Active Directory服务器上重置密码的三种方法。
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
81 30