1..NetCore 項目打包成Docker 鏡像 1.1創建一個.NetCore web項目 項目名為 testmvc 此處用的是.NetCore2.1版本 1.2並且在program裡面設置啟動埠,預設5000 這裡設置為8003埠 1.3 發佈項目,並且在發佈的文件裡面創建一個 Docke ...
1..NetCore 項目打包成Docker 鏡像
1.1創建一個.NetCore web項目 項目名為 testmvc 此處用的是.NetCore2.1版本
1.2並且在program裡面設置啟動埠,預設5000
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls("http://*:8003");
這裡設置為8003埠
1.3 發佈項目,並且在發佈的文件裡面創建一個 Dockerfile 文件
1.4 編寫 Dockerfile 文件內容
#基於 `microsoft/dotnet:1.0.0-core` 來構建我們的鏡像 FROM microsoft/dotnet:2.1-aspnetcore-runtime #拷貝項目publish文件夾中的所有文件到 docker容器中的publish文件夾中 COPY . /publish #設置工作目錄為 `/publish` 文件夾,即容器啟動預設的文件夾 WORKDIR /publish #設置Docker容器對外暴露8003埠 EXPOSE 8003 #使用`dotnet testmvc.dll`來運行應用程式 CMD ["dotnet", "testmvc.dll", "--server.urls", "http://*:8003"]
1.5 生成docker鏡像,此處是在linux centos環境下生成的
此時通過 docker images 可以看到
2..NetCore 項目的Docker 鏡像推送到阿裡雲鏡像倉儲
2.1 在阿裡雲創建自己的容器倉庫 https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
2.2
按照阿裡雲的提示進行鏡像推送。
先登錄,密碼為阿裡雲的賬號密碼
推送鏡像,註意鏡像ID 和版本
這時候可以在阿裡雲的鏡像版本看到自己的版本信息
這裡推送到阿裡雲的鏡像完成
3.在linux上獲取阿裡雲自己的Docker鏡像
3.1
這時候的本地鏡像倉庫就存在阿裡雲的版本的鏡像
4.在linux運行項目,多版本回滾
執行 命令
docker run --name test -d -p 8003:8003 registry.cn-hangzhou.aliyuncs.com/lijiqing/test:1.0.2
版本的回滾指的是,當發佈新的鏡像之後 如果出現bug或者其他問題,可以將當前容器關閉,運行之前舊的鏡像
當然可以用 k8s用來編排管理。