天天看点

在阿里云上运行ASP.NET Docker应用

微软的.net开源后可以运行在mac和linux平台,也支持运行在docker容器里。我们今天要尝试的是在mac上开发一个.net应用,并且把它用docker跑起来,然后部署到阿里云容器服务上。

在mac上安装.net core需要先安装openssl。

使用dotnet命令行可以创建.net helloworld程序。<code>dotnet restore</code>是将所有依赖信息恢复出来。

运行新生成的程序

不愿意自己敲字的同学可以从这里复制代码:

<a href="https://code.aliyun.com/libin.libin/dotnet-helloworld">https://code.aliyun.com/libin.libin/dotnet-helloworld</a>

启动浏览器访问<code>http://localhost:5000</code>可以看到输出了:

在阿里云上运行ASP.NET Docker应用

首先看看例子目录下都有哪些文件:

dockerfile用来生成docker镜像,内容如下:

基础镜像为微软的官方镜像,另外<code>bin/debug/netcoreapp1.0/publish/</code>由<code>dotnet publish</code>命令生成。要生成docker镜像需要执行如下命令:

上传到阿里云容器hub,记得先在其中的<code>&lt;name&gt;</code>替换成自己的名字。

本地运行docker应用的命令如下:

如果你按照官方文档,会发现应用仅侦听localhost,造成浏览器访问不了。可以在代码中指定应用侦听所有地址。

还记得例子目录下有个<code>docker-compose.yml</code>文件吗?

把上面内容中<code>&lt;name&gt;</code>替换为自己的名字,在集群里创建应用时,选择<code>使用编排模版创建</code>:

在阿里云上运行ASP.NET Docker应用

在模版编辑器中粘贴docker-compose.yml文件内容,然后点击<code>创建并部署</code>:

在阿里云上运行ASP.NET Docker应用

应用创建成功后进入服务页面,发现服务的访问端点已经自动生成了:

在阿里云上运行ASP.NET Docker应用

点击<code>访问端点</code>,启动浏览器可以看到asp.net的输出了:

在阿里云上运行ASP.NET Docker应用