前面两篇文章介绍了Docker一些基本概念和环境搭建,下面我们来学习一下如何将开发好的Net Core 接口项目在Docker中跑起来。
本文不关注安全方面的信息,所以,在操作之前,先关闭防火墙
systemctl stop firewalld.service
总体的流程是比较简单的可以分为3步:
- 拉取基础镜像 microsoft/dotnet
对于基础镜像,大家可以理解为镜像模板,我们自己创建自定义镜像,都是从基础镜像中修改而来的。
docker pull microsoft/dotnet:latest
- 构建自定义镜像
1、 发布接口项目,将项目代码上传到指定路径比如:root/docker/
2、创建Dockerfile文件,将Dockerfile上传到代码目录
FROM microsoft/dotnet:latest ?? #自定义的镜像来源于基础镜像 microsoft/dotnet:latestWORKDIR /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
这里需要注意一下,在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
Docker 部署NetCore 接口(三)
原文地址:http://www.cnblogs.com/jiao006/p/7778877.html