Docker 部署NetCore 接口(三)
阿新 • • 發佈:2017-11-07
rem asp core 工作 code ram rom ros service
前面兩篇文章介紹了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: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
這裏需要註意一下,在Program.cs中,一定要指定是監聽任何地址,否則請求地址會被拒絕
1 public class Program 2 { 3 public staticvoid 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 接口(三)