Docker是个好东西,最近有一些项目也在用,我把ASP.NET Core使用Doker进行部署的过程分享给大家,希望可以帮助到广大.NET 程序员
这次的操作系统使用的是CentOS,SDK使用的是.NET Core2.0,当然2.1已经发布,使用2.1也不会有任何影响
1.首先安装Docker
我使用的是阿里云的服务服务器
直接执行:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
如果是阿里云直接执行这个就行,如果不是的话请到在下面我附上教程地址:https://yq.aliyun.com/articles/110806
安装完Docker 之后需要启动Docker服务,由于当时没有截图,所以在这没法详细解说,非常简单,Liunx会自动提示你该如果去做
如果提示你docker.sock没有启动,执行:service start docker
2.打包程序
在项目的Web项目上右击发布,然后发布到文件夹即可,没错,就是这么简单
然后我们找到发布的文件夹,在文件夹中添加一个文件,文件名为:Dockerfile。没有后缀
在文件中添加以下配置
FROM microsoft/aspnetcore AS pub-env
WORKDIR /app
# copy everything else and build
COPY . ./
# build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=pub-env /app .
ENTRYPOINT ["dotnet", "项目的dll"]
只需要把项目的dll换成自己的就可以了
然后使用winSCP把文件上传到Liunx服务器
在liunx中cd到你上传的文件夹里,执行doker编译命令:docker build -t 镜像名 .(这个点的意思是Dockerfile在当前文件夹下,如果不是打自己的地址)。
编译完成后执行启动镜像命令:docker run -d --rm -p 5000:80 --name 实例名 镜像名
实例名随便起,镜像名就是你刚才打包出来的镜像名称,5000是外界访问服务器的端口,80是你.net程序启动的端口,一般情况下默认为 80:80即可
根据实际情况自己修改
执行 docker ps 可以看到镜像的运行情况
最后访问我们的服务器80端口,网站正常运行。
以上是我对ASP.NET CORE中使用Docker进行容器化部署的总结,有不对的地方欢迎大家指正,如有疑问可以留言。