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