Docker:在 Docker 安装部署 Windows 镜像容器

1. 前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
基于 Docker 技术,开发人员可以有效解决应用部署环境不一致的问题,实现 环境标准化:即一次创建部署,任意地方运行,从而方便的进行迁移、部署、维护、迭代,同时提高资源利用效率和响应速度,另外应用于资源的隔离也能有效提升安全性。

YRf2mZDL6fRHIohz12etd7nTzqrqzN7Y9aBZTaXoQ8Q=.png

2. Docker 对 Windows 容器的支持

Docker 发展早期是并不支持 Windows 容器的,但是后来随着 Docker 的发展,也将 Windows 系统纳入容器支持范围,详情可参考文章:《Windows 容器文档)》。
一些企业在开发过程中,会选择使用 Windows 作系统为开发和部署环境,但是 Windows 系统本身和 Linux 一样也存在版本和环境差异,应用的部署迁移同样面临环境不一致问题,因此 Docker 对 Windows 容器的支持也显得尤为必要。

  • Docker Hub 上的 Windows 相关镜像:
PS C:\Users\Administrator> docker search windows
NAME                                            DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
microsoft/windowsservercore                     The official Windows Server Core base image     653
microsoft/windowsservercore-insider             The official Windows Server Core insider bas…   30
dockcross/windows-x64                           64-bit Windows cross-compiler based on MXE/M…   11
toolboc/windows95                               Windows 95 in a container                       4                                       [OK]
cloudfoundry/windows2016fs                                                                      4
coderobin/windows-sdk-10.1                      Windows SDK 10.1 for Windows Container (base…   3                                       [OK]
dockcross/windows-x86                           32-bit Windows cross-compiler based on MXE/M…   3
malice/windows-defender                         Malice Windows Defender AntiVirus Plugin        2                                       [OK]
cirrusci/windowsservercore                      Windows containers that can be executed on G…   2
mgba/windows                                    Windows autobuilds                              1                                       [OK]
surazzarus/windows7-starter                                                                     1
slightlytyler/windows-test                                                                      0
bmedora/windows-login-loadgen                                                                   0
pcfeagle/windows-pipeline-image                 Docker image used to run windows pipeline of…   0
bonzofenix/windows-builder                                                                      0
netlims/windows-frontend-gateway                                                                0
shawnneal/windows-stemcell-concourse            Used by https://github.com/cloudfoundry-comm…   0
ramicro/windows-node                                                                            0
cfcommunity/windows-stemcell-concourse          For use with the Concourse tasks in the cf-c…   0
mback2k/windows-buildbot-msys2                  My personal version of a public Docker image…   0
patrickhuber/windows-stemcell-builder-runtime                                                   0
mcy93w/windowsservercore                                                                        0
ramicro/windows-base                                                                            0
ramicro/windows-openjdk                                                                         0
toktoknet/windows                               Windows cross compilers: i686 and x86_64.       0

3. Docker 安装 Windows Server 容器

  • 首先需要确保你的电脑上已经安装了 docker for windows 软件,如果尚未安装可以参考我的另一篇文章《Docker:在 windows 10 上安装 docker 步骤》;
  • 切换到 Windows containers
    如下图,鼠标点击 docker 图标右键,之后点击 Switch to Windows containers...
    b7e02a92cc7689b498dc430e3a6b264c332c9c1f (1).jpg
  • 注意:进行上面切换这一步时有时可能会遇到 Required Windows feature(s) not enabled 报错:
Required Windows feature(s) not enabled : Containers. Docker Desktop will exit.

遇到上面的报错时,可以复制下面的内容,保存成 .bat 批处理文件,并以管理员身份执行 .bat 文件,等待执行完毕、电脑重启后,重新安装安装 Docker Desktop Installer.exe,安装完毕后进行上一步切换动作。

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause
  • 成功切换到 Windows
docker version

得到下面提示表示切换成功:

Client: Docker Engine - Community
 Cloud integration: 1.0.2
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:00:27 2020
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.24)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:14:20 2020
  OS/Arch:          windows/amd64
  • 下载 Windows Server 2019 镜像
    关于 Windows 的镜像,除了上面使用 docker search windows 搜索镜像以外,也可以在 docker hub 上查找 Windows 镜像,地址:https://hub.docker.com/search?q=windows&type=image。这里我们选择第一个 Windows Server Core 并 pull 到本地,如下图:
image.png
docker pull mcr.microsoft.com/windows/servercore:ltsc2019

注意:由于加速器在 Windows 容器并不适用,所以下载速度较慢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354