Docker 部署NetCore 接口(三)

前面两篇文章介绍了Docker一些基本概念和环境搭建,下面我们来学习一下如何将开发好的Net Core 接口项目在Docker中跑起来。

本文不关注安全方面的信息,所以,在操作之前,先关闭防火墙

systemctl stop firewalld.service 

 

总体的流程是比较简单的可以分为3步:

  • 拉取基础镜像  microsoft/dotnet
对于基础镜像,大家可以理解为镜像模板,我们自己创建自定义镜像,都是从基础镜像中修改而来的。

docker pull microsoft/dotnet:latest

 

  • 构建自定义镜像

1、创建一个WebApi项目并发布,将项目代码上传到指定路径比如:root/docker/

2、创建Dockerfile文件,将Dockerfile上传到代码目录(没有扩展名)

FROM microsoft/dotnet:latest                #自定义的镜像来源于基础镜像 microsoft/dotnet:latest

WORKDIR /app                         #容器中的工作目录

COPY   . /app/                       # Copy the app file to root  从当前宿主目录“.” copy 到 容器镜像目录 “/app/”
EXPOSE 5000/tcp                      # Configure the listening port to 5000
ENTRYPOINT  ["dotnet", "/app/DockerTest.dll"]    # Start the app

 3、编译自己的镜像   名字为 “netcoretest”  

docker build -t netcoretest ./

 

  • 运行镜像,并将外网端口映射到容器端口(外网:内网)
docker run -it -p 5000:5000 netcoretest

看到红框中的信息,说明代码已经在docker中跑起来了(每次宿主关机,端口映射会被还原,下次再次使用,需要重新映射。如果是停止容器,重新运行,可以直接使用  docker run netcoretest 命令)

 

 

 接下来使用ip在浏览器中检查一下,已经能访问到接口,并取得数据

这里需要注意一下,在Program.cs中,一定要指定是监听任何地址,否则请求地址会被拒绝

 1  public class Program
 2     {
 3         public static void Main(string[] args)
 4         {
 5             BuildWebHost(args).Run();
 6         }
 7 
 8         public static IWebHost BuildWebHost(string[] args) =>
 9             WebHost.CreateDefaultBuilder(args)
10                    .UseStartup<Startup>()
11                    .UseUrls("http://*:5000")
12                     .Build();
13     }

 

 

 

 

https://help.aliyun.com/document_detail/51853.html

http://blog.csdn.net/remote_roamer/article/details/51916893

http://www.runoob.com/docker/docker-image-usage.html

http://www.docker.org.cn/book/docker/prepare-docker-5.html

http://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html

http://www.cnblogs.com/baiyunchen/p/5812110.html

posted @ 2017-11-06 22:43  jiao006  阅读(622)  评论(0编辑  收藏  举报