一、背景

最近一直在看docker的教程,基础知识看的差不多了。理论总要运用于实践,所以下面我们就来把最简单的一个netcore网站托管到docker容器中。
环境:1、docker for windows
2、 .net core 2.2

二、创建一个简单的netcore网站

2.1 使用dotnet new web命令创建一个新的项目

2.2 使用dotnet run命令编译创建的项目

2.3 访问验证生成的netcore项目

至此,我们的netcore项目,已经在windows平台上运行起来了。

三、编译为linux运行文件,并编写dockerfile

3.1 使用dotnet publish --runtime ubuntu.16.04-x64命令编译为可在linux系统运行的文件

3.2 进入到编译好的ubuntu.16.04-x64\publish\文件夹下,编写dockerfile

# 声明使用的基础镜像
from microsoft/dotnet:2.2-aspnetcore-runtime as base
# 声明工作目录
workdir /app
expose 80
copy ./ ./
# 指定应用入口点 netcoretest.dll代表的是主程序文件
entrypoint ["dotnet", "netcoretest.dll"]

四、运行生成的镜像、并验证访问

4.1 使用docker build -t netcoretest .制作镜像

我们可以使用docker image ls 查看刚制作成功的镜像

4.2 使用生成的镜像,运行到docker

运行命令docker run -it -d -p 8072:80 --name netcoretest netcoretest

4.3 查看运行成功的容器

4.4 访问容器中的网站http://localhost:8072

访问成功,我们已经成功地把netcore的网站托管到docker容器中

五、总结

将网站托管到容器中,是一种比较新的技术,代表着新的方向。
我们可以将问题拆解为,先编写netcore程序,验证程序在linux平台上运行成功后,再来将程序托管到docker中。
参考文章:
1.https://www.cnblogs.com/xiaoerlang90/p/10285410.html
2.https://www.cnblogs.com/hulizhong/p/10698584.html