1.环境
VS2017
.NET Core 2.2
Win 10(家庭版)
Ubuntu 16.04(VM 虚拟机)
2、新建项目
打开VS2017,新建ASP.NET Core Web应用程序,在模板出随便选择,本处选择的是“Web应用程序(视图模型控制器)”,并勾选启用Docker支持,如果此处没有勾选,可在项目上右键,选择“添加|Docker支持”。添加了Docker支持后,就能在项目目录下面看到“Dockerfile”文件。




3.镜像内编译
镜像内编译,即是指将编译的过程放在docker image的构建过程中。可以用于直接从git仓库下载源代码进行编译。此处用于演示,并未使用git。
3.1.服务器构建
将Dockerfile从“AspCoreDockerSample\AspCoreDockerSample”文件夹中拷贝到“AspCoreDockerSample”文件夹下,即将将其路径从子文件夹中提升一级。
将项目文件夹拷贝到Ubuntu中
打开终端,输入sudo docker build –t aspcoredockersample .
编译成功后能够看到successfully类的字样,使用docker images命令能够查看到aspcoredockersample镜像的存在。使用docker run –name sample -p 80:80 -d aspcoredockersample运行此镜像,在浏览器中输入http://127.0.0.1/,能够看网站已经成功启动。



3.2.本地编译
由于使用的是Win10家庭版,并不能够像专业版那样很方便的安装docker。如果使用的是Win10专业版,在启用了Docker支持后,可以直接在VS中选择Docker启动进行镜像的构建,然后可以通过docker镜像仓库来进行部署。

4.镜像外编译
镜像外编译即是指在本地编译后使用编译后的dll进行docker镜像的构建。
- 首先,将网站发布,本文的发布路径为D:\website\publish

- 在website文件夹下新建“Dockerfile”文件(无扩展名),在文件中写入如下命令:
1 | `FROM microsoft/dotnet:2.2-aspnetcore-runtime WORKDIR /app COPY ./publish ./ EXPOSE 80 ENTRYPOINT ["dotnet", "AspCoreDockerSample.dll"]` |
- 将website文件夹复制到Ubuntu中,使用sudo docker build –t aspcoredockersample2 .命令构建,使用docker run –name sample2 -p 8080:80 -d aspcoredockersample2构建一个新的容器,使用浏览器访问http://127.0.0.1:8080/即可看到网站。
