Docker + .NET Core(二)
阿新 • • 發佈:2019-01-09
原文:
Docker + .NET Core(二)
前言:
環境:centos7.5 64 位
正文:
首先我們在宿主機上安裝 .NET Core SDK
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo' sudo yum update sudo yum install libunwind libicu sudo yum install dotnet-sdk-2.2
安裝好之後,建立一個 .NET Core MVC的專案:
cd $HOME
mkdir demo
cd demo
#建立一個HelloDocker.Web的MVC專案
dotnet new mvc -n HelloDocker.Web
cd HelloDocker.Web
dotnet run
這個時候可能會報錯,我一開始以為是IPV6的問題,後來發現並不是
vi Program.cs
加一句這個就可以了
直接瀏覽器訪問 http://IP:5000
然後關掉
這時訪問不了 http://IP:5000
掛載到容器中
# `\`結合`Enter`鍵構成換行符,可以換行輸入一個長命令。 #-it以互動模式(進入容器內部) #-p引數埠對映 #-v引數掛載宿主機的檔案到容器的指定目錄 $HOME/demo/HelloDocker.Web資料夾下的檔案掛載到容器的\app目錄下。 docker run -it \ -p 5000:5000 \ -v $HOME/demo/HelloDocker.Web:/app \ microsoft/dotnet:latest
這一步可能會出錯
WARNING: IPv4 forwarding is disabled
啟用IPV4 IP的轉發:
檢查當前值:
/sbin/sysctl net.ipv4.conf.all.forwarding
啟用設定:
/sbin/sysctl -w net.ipv4.conf.all.forwarding=1
檢查輸出docker info:
docker info
再重新執行上面的長命令,不報錯,已經進入容器內
cd app
dotnet run
瀏覽器訪問 http://IP:5000
成功
容器內部中的app目錄下包含了宿主機上的原始碼專案。是以共享的形式,而不是宿主機的拷貝,在宿主機上對目錄的更改會即時反應到容器中。但反過來,容器中對共享目錄的更改不會反應到宿主機上,容器具有隔離特性。