环境准备
-
准备打包的主机:
需要主机运行Windows 10(1809, 专业版或者企业版)或Windows Server 2016(1809)操作系统。如果本地没有合适的机器,也可以在阿里云上以按量计费方式购买一台ECS,并选择Windows Server 1809数据中心版。 另外,Windows基础容器镜像体积很大(4G左右),如果本地出口带宽不够,下载基础镜像和上传打包镜像会非常慢,甚至失败。因此推荐带宽低于100Mbps的用户使用ECS来完成打包。
-
安装Docker:
选择基础镜像
用户应根据自己应用所需的基础能力,选择基础镜像,这里整理了三类基础镜像,供用户选择。 基础操作系统镜像: 微软提供了三个基础镜像:windows servercore, windows nanoserver和powershell。
-
servercore 功能最完整,镜像体积最大,在4G左右,镜像地址:
registry.cn-hangzhou.aliyuncs.com/plugins/windows-servercore:1809 -
nanoserver 裁剪了很多特性,参见 详情 ,镜像地址:
registry.cn-hangzhou.aliyuncs.com/plugins/windows-nanoserver:1809 -
powerhsell 在nanoserver基础上增加了powerhsell core,镜像地址:
registry.cn-hangzhou.aliyuncs.com/plugins/windows-powershell:nanoserver-1809 -
jdk基础镜像 :openjdk:8u201-jdk-windowsservercore-1809
-
dotnet基础镜像: 微软提供了.net core和.net framework两个版本,都支持容器化使用。参考 决策表 来选择使用.net core还是.net framework
-
net core 2.1 基础镜像:
mcr.microsoft.com/dotnet/core/runtime:2.1 -
net core 2.2 基础镜像:
mcr.microsoft.com/dotnet/core/runtime:2.2 -
asp.net core 2.1 基础镜像:
mcr.microsoft.com/dotnet/core/aspnet:2.1 -
asp.net core 2.2 基础镜像:
mcr.microsoft.com/dotnet/core/aspnet:2.2 -
framework 3.5 基础镜像:
microsoft/dotnet-framework:3.5-runtime -
framework 4.7.2 基础镜像:
microsoft/dotnet-framework:4.7.2-runtime
-
-
tomcat基础镜像:
9.0.17版本:
registry.cn-hangzhou.aliyuncs.com/zhiying/tomcat-win:9.0.17-1809tomcat安装目录为c:\\apache-tomcat-9.0.17,启动命令为c:\\apache-tomcat-9.0.17\\bin\\startup.bat。
镜像打包
-
编写dockerfile 参考 windows上的dockerfile 。
-
制作镜像
将dockerfile和待打包的文件放到一个目录下,并在该目录执行如下命令:
docker build -t <镜像仓库地址>:<镜像版本号> .
镜像上传
-
登录到镜像仓库
-
执行命令:
docker login --username=<用户名> registry.cn-shanghai.aliyuncs.com。 -
登录Registry的用户名是您的阿里云账号的全名,密码是您开通服务时设置的密码。您可以在镜像管理首页修改登录密码。
-
-
测试镜像
-
进入powershell
-
启动容器:
$id=$(docker run -itd <镜像仓库地址>:<镜像版本号>) -
查看容器启动日志:
docker logs $id -
进入容器,检查程序是否正常:
docker exec -it $id cmd -
停止容器:
docker stop $id
-
3. 打包TAG
执行命令:
docker tag <Image ID> <镜像仓库地址>:<镜像版本号>
。其中
镜像仓库地址
请在上面新建的镜像仓库详情中查看。
镜像版本号
自定义输入版本。
4. 推送镜像
执行命令:
docker push <镜像仓库地址>:<镜像版本号>
。其中
镜像仓库地址
、
镜像版本号
是上一步中输入的内容。推送成功后,即可在
镜像管理
具体仓库中查看到对应的镜像。