思科DevNet

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

2020-11-12  本文已影响0人  dex0423

1. 前言

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

YRf2mZDL6fRHIohz12etd7nTzqrqzN7Y9aBZTaXoQ8Q=.png

2. Docker 对 Windows 容器的支持

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

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
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
image.png
docker pull mcr.microsoft.com/windows/servercore:ltsc2019

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

上一篇下一篇

猜你喜欢

热点阅读