首先,需要在开发Asp.Net Core的机器上安装Docker Desktop,可以在Windows 10 专业版和企业版上安装,可以从官网下载安装文件:
https://www.docker.com/products/docker-desktop。在Windows 10家庭版(2004)上也有了解决方案,不过还没有试过。安装过程很简单,安装完成后,在屏幕右下角会有docker的图标。如果已经升级到Windows 10 2004,可以安装更新,不再需要使用Hyper-V。
安装完成后,可以输入docker version 查看使用的版本。还可以输入docker run hello-world加载并运行简单的镜像。
为了在DockerHub上发布我们自己的镜像,还需要在https://hub.docker.com/上注册一个用户。注意注册完成后,会收到验证注册的邮件地址的邮件,需要完成邮件地址的验证。
Docker Desktop安装完成后,就可以进行支持Docker的Asp.Net Core项目开发了,打开Visual Studio 2019,创建一个Asp.Net Core 项目,在创建时,需要选中启用Docker支持:
项目创建完成后,会发现工具栏中的运行图标变为了Docker:
如果是第一次开发支持Docker的项目,Visual Stuido会下载安装一些支持镜像,并启动相应的开发镜像。我们在控制台中输入docker ps,可以看到这些镜像已经创建并且加载到Docker容器:
在Visual Studio中可以开发调试项目,调试时启动的是docker容器中的应用。
开发完成后,可以发布docker镜像到hub.docker.com。在Visual Studio中选择"生成->发布",目标选择“Docker容器注册表”:
然后选择Docker Hub,在下一个界面中,输入组织名和用户名(如果没有在Hub.Docker.com中设置组织,组织名填写为用户名)
点击完成,开始进行发布工作,可能会需要一些时间,可以在输出窗口看到进度。发布成功后,可以登录到https://hub.docker.com/repositories进行查看,如果发布成功,可以在列表中看到新创建的镜像。
为了验证镜像创建的成功,可以在其它机器上安装并运行这个镜像。在一台linux机器上输入:
sudo docker run -p 8080:80 zhenlei1970/testdocker
可以安装并运行这个测试镜像,打开浏览器,输入http://localhost:8080,会看到结果