標籤:
先決條件
64位,核心3.10以上,查看當前的核心版本,開啟一個終端使用uname -r顯示您的核心版本
??
??
??
安裝
sudo yum update
??
sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF‘
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
??
??
??
安裝docker
sudo yum install docker-engine
??
??
啟動docker
sudo service docker start
??
驗證docker已正常安裝
??
安裝.net core 鏡像
https://hub.docker.com/r/microsoft/dotnet/
??
??
建立檔案Dockerfile?,並修改內容
??
??
檔案內容
#基於`mcrosoft/dotnet:1.0.0-core` 來構建我們的鏡像
FROM microsoft/dotnet:1.0.0-core
??
#拷貝項目publish檔案夾中的所有檔案到 docker容器中的publish檔案夾中
COPY . /publish
#設定工作目錄為 `/publish` 檔案夾,即容器啟動預設的檔案夾
??
WORKDIR /publish
??
#設定Docker容器對外暴露60000連接埠
EXPOSE 60000
??
#使用`dotnet MyApp.TestCore.dll`來運行應用程式
??
CMD ["dotnet", "MyApp.TestCore.dll"]
??
??
??
??
構建鏡像
docker build -t my-dotnet-app .
??
注意最後有個.
如果建立失敗,需要vpn才可以,這一步我試了幾次總有逾時,就找了個vpn再次構建就成功了
??
??
運行
docker run --name my-dotnet-app -d -p 60000:60000 my-dotnet-app
??
測試網站
??
失敗了,報curl: (56) Recv failure: Connection reset by peer
??
參考解決辦法:http://stackoverflow.com/questions/27806631/docker-rails-app-fails-to-be-served-curl-56-recv-failure-connection-reset
??
修改程式如下:添加UseConfiguration
var configuration = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
??
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(configuration)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
??
host.Run();
??
發布程式
修改Dockerfile?檔案如下
??
??
FROM microsoft/dotnet:1.0.0-core
??
COPY . /publish
??
WORKDIR /publish
??
EXPOSE 5003
??
CMD ["dotnet", "MyApp.TestCore.dll","--server.urls", "http://*:5003"]
??
重新構建鏡像
??
sudo docker build -t dotnetapp .
??
??
運行並查看
sudo docker run --name dotnetapp -d -p 5003:5003 dotnetapp
??
??
測試網站
??
??
api返回資料,成功
防火牆開放連接埠
$ sudo firewall-cmd --zone=public --add-port=5003/tcp --permanent
$ sudo firewall-cmd --reload
??
??
說下遇到的問題:
1.構建鏡像時由於網路原因,試了好幾次都沒有成功,需要找個vpn
2.curl: (56) Recv failure: Connection reset by peer 這個錯誤,.net core預設建立的網站綁定的是localhost這個需要修改網站綁定方式,通過添加
UseConfiguration或UseUrls方式修改預設網站的綁定
??
??
??
??
??
??
Centos 7 ASP.NET Core 1.0 Docker部署