使用Docker运行ASP.NET Core 2.0 WebAPI

  • A+
所属分类:.NetCore Docker

使用Docker运行ASP.NET Core 2.0 WebAPI

新建一个 ASP.NET Core 2.0 项目

使用Docker运行ASP.NET Core 2.0 WebAPI
使用Docker运行ASP.NET Core 2.0 WebAPI

然后运行一下项目,确保我们刚刚建立的项目可以正常运行。

使用Docker运行ASP.NET Core 2.0 WebAPI

2.编写 Dockerfile

  1. 新建一个文本文件,命名为 Dockerfile  
  1. # 基于microsoft/dotnet:2.1-aspnetcore-runtime构建Docker Image    
  2. FROM microsoft/dotnet:2.1-aspnetcore-runtime    
  3.     
  4. # 进入docker中的/usr/local/src目录    
  5. RUN cd /usr/local/src    
  6.     
  7. # 创建DockerWebAPI目录    
  8. RUN mkdir DockerWebAPI    
  9.   
  10. # 设置容器时间为北京时间  
  11. RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \  
  12. && echo 'Asia/Shanghai' >/etc/timezone    
  13.   
  14. # 设置工作路径    
  15. WORKDIR /usr/local/src/DockerWebAPI    
  16.     
  17. # 将当前文件夹下的所有文件全部复制到工作目录    
  18. COPY . .    
  19.     
  20. # 向外界暴露80端口    
  21. EXPOSE 80    
  22.     
  23. # 执行dotnet DockerWebAPI.dll命令    
  24. ENTRYPOINT ["dotnet", "DockerWebAPI.dll"]    
  1. 这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime  
  1. 如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtime-alpine ,这镜像使用了alpine 一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。  

3.发布项目

使用Docker运行ASP.NET Core 2.0 WebAPI

4.将Dockerfile文件复制到发布成功的目录,并全部上传到服务器

使用Docker运行ASP.NET Core 2.0 WebAPI

4.构建Docker镜像

  1. 我们将镜像命名为 :dockerwebapi  
  1. 进入到发布文件目录(Dockerfile文件所在目录),执行命令便可打包镜像:    
  1. docker build -t dockerwebapi .  
  1. 注意,千万别省略了最后一个点号,它表示采用当前路径的Dockerfile来生成Docker Image。如果是第一次生成,由于需要下载microsoft/dotnet:2.1-aspnetcore-runtime 这个Docker Image作为基础Image,所以会比较慢(国内网速原因,你懂的)。  

如果成功的话,大致可以看到以下画面:

使用Docker运行ASP.NET Core 2.0 WebAPI

在Docker Container中运行ASP.NET Core Web API应用程序

  1. 现在,我们就可以使用docker run来执行刚才产生的Docker Image了。docker run会把Docker Image加载到Docker Container中,然后执行由Dockerfile指定的命令(也就是dotnet DockerWebAPI.dll命令)。docker run的命令如下:  
  1. docker run --name=dockerwebapi -p 8080:80 -d  dockerwebapi  
  1. --name //指定容器名称  
  2. -p //8080:80参数表示需要将Docker Container的80端口映射到主机环境的8080端口,也就是客户端可以直接通过8080端口访问我们的应用程序  
  3. -d //指定容器 后台运行  

出现一长串字符串,便是表示运行成功:

使用Docker运行ASP.NET Core 2.0 WebAPI

5.验证访问

使用Docker运行ASP.NET Core 2.0 WebAPI

参考资料

  1. https://www.cnblogs.com/stulzq/p/9201830.html  
  2. http://www.cnblogs.com/daxnet/p/5782019.html  
钰玺

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: