ASP.NET Core Docker镜像构建的三种方式
半野

1.环境

VS2017

.NET Core 2.2

Win 10(家庭版)

Ubuntu 16.04(VM 虚拟机)

2、新建项目

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

image.png

image.png

image.png

image.png

3.镜像内编译

镜像内编译,即是指将编译的过程放在docker image的构建过程中。可以用于直接从git仓库下载源代码进行编译。此处用于演示,并未使用git。

3.1.服务器构建

  1. 将Dockerfile从“AspCoreDockerSample\AspCoreDockerSample”文件夹中拷贝到“AspCoreDockerSample”文件夹下,即将将其路径从子文件夹中提升一级。

  2. 将项目文件夹拷贝到Ubuntu中

  3. 打开终端,输入sudo docker build –t aspcoredockersample .

  4. 编译成功后能够看到successfully类的字样,使用docker images命令能够查看到aspcoredockersample镜像的存在。使用docker run –name sample -p 80:80 -d aspcoredockersample运行此镜像,在浏览器中输入http://127.0.0.1/,能够看网站已经成功启动。

image.png

image.png

image.png

3.2.本地编译

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

image.png

4.镜像外编译

镜像外编译即是指在本地编译后使用编译后的dll进行docker镜像的构建。

  1. 首先,将网站发布,本文的发布路径为D:\website\publish

image.png

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

image.png

由 Hexo 驱动 & 主题 Keep
总字数 105.7k 访客数 访问量