這個教程主要是對於第一次使用dotnet core開發的同學。 運行環境是在centos 7 , 使用了docker容器。 即這是一篇運行在linux的docker容器上的微服務的簡單應用。 一. 安裝.NET SDK 安裝.NET之前,先安裝一些依賴,運行下麵的命令 安裝成功後,再安裝.NET S ...
這個教程主要是對於第一次使用dotnet core開發的同學。
運行環境是在centos 7 ,
使用了docker容器。
即這是一篇運行在linux的docker容器上的微服務的簡單應用。
一. 安裝.NET SDK
安裝.NET之前,先安裝一些依賴,運行下麵的命令
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
安裝成功後,再安裝.NET SDK
sudo yum update //對整個系統升級 sudo yum install dotnet-sdk-2.2 //安裝.net sdk
檢驗下是否安裝成功
dotnet
二.創建服務
運行下麵的命令
dotnet new webapi -o myMicroservice --no-https cd myMicroservice
dotnet會創建一個webapi類型的應用。
-o :表示會創建一個名字為myMicroservice的目錄
--no-https :表示這個應用運行的時候不需要https證書,這是為了部署時方便
cd myMicroservice:表示進入到這個新創建的目錄
上面的命令運行以後會生成一些文件,這裡對部分文件進行講解:
myMicroservice.csproj:定義了這個應用引用 的一些 libraries
Startup.cs:包含所有的setting和應用啟動時的配置文件
Controllers/ValuesController.cs:是一個簡單的api
[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[] { "value1", "value2" }; } }
三.運行服務
dotnet run
輸入:http://localhost:5000/api/Values 瀏覽效果
四.安裝Docker
這裡得說下,我這個安裝的有點曲折,本來準本在win7上直接裝windows版的,後來發現得win10才行,沒辦法,裝了個Vmware虛擬機,又想著虛擬機都裝了,乾脆裝個linux吧,然後就下了Centos,然後發現中間使用的時候網路有問題,又各種搜,最後把虛擬機的網路設置設置成了橋接,網路能用了,因為下麵有用到y um命令,所以必須保證網路可用。
這裡先把網址給出來,有需要的同學可以看下官網的安裝說明(有3中方式,這裡只介紹一種yum方式):docker的Centos安裝
1.首先安裝一些必要的包。yum-utils是用來提供yum-config-manager工具的,devicemapper驅動依賴的是device-mapper-persistent-data
和 lvm2兩個包。
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2.安裝穩定的庫
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3.列出庫中可用的docker版本,選擇版本安裝
yum list docker-ce
4.安裝指定的版本。
sudo yum install docker-ce
5.啟動並加入開機啟動
$ sudo systemctl start docker
$ sudo systemctl enable docker
6.檢驗是否安裝成功
docker --version
五.添加Docker元數據(Docker metadata)
想要讓docker鏡像(docker image)運行,你需要一個Dockerfile文件。這個文件中包含怎麼把應用打包成鏡像的說明。
1.進入應用目錄
cd myMicroservice
2.新增一個Dockerfile
echo . > Dockerfile
把下麵的內容複製到裡面
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base WORKDIR /app FROM microsoft/dotnet:2.2-sdk AS build WORKDIR /src COPY myMicroservice.csproj myMicroservice/ RUN dotnet restore myMicroservice/myMicroservice.csproj WORKDIR /src/myMicroservice COPY . . RUN dotnet build myMicroservice.csproj -c Release -o /app FROM build AS publish RUN dotnet publish myMicroservice.csproj -c Release -o /app FROM base AS final COPY --from=publish /app . ENTRYPOINT ["dotnet", "myMicroservice.dll"]
六.創建一個Docker鏡像
docker build -t mymicroservice .
docker build命令使用Dockerfile中的信息建立一個docker鏡像
-t mymicroservice:把鏡像命名為 mymicroservice
. :表示Dockerfile在當前目錄
列出可用的鏡像
docker image ls
七. 運行Docker鏡像
執行下麵的命令
docker run -it --rm -p 3000:80 mymicroservice
訪問下麵的網址:http://localhost:3000/api/values
好了,結束。
以上操作經過驗證,如果有問題可以參考網址如下:
https://dotnet.microsoft.com/learn/web/aspnet-microservice-tutorial/run-docker 微軟microservice教程
https://docs.docker.com/install/linux/docker-ce/centos/ docker安裝教程
https://www.cnblogs.com/yufeng218/p/8370670.html docker安裝相關