.NetCore打包docker鏡像

1..NetCore 項目打包成Docker 鏡像

1.1建立一個.NetCore web項目 項目名爲   testmvc  此處用的是.NetCore2.1版本linux

1.2而且在program裏面設置啓動端口,默認5000web

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
            .UseUrls("http://*:8003");

  這裏設置爲8003端口docker

1.3 發佈項目,而且在發佈的文件裏面建立一個 Dockerfile 文件centos

1.4 編寫 Dockerfile 文件內容mvc

#基於 `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環境下生成的ui

此時經過 docker images 能夠看到阿里雲

2..NetCore 項目的Docker 鏡像推送到阿里雲鏡像倉儲

2.1 在阿里雲建立本身的容器倉庫 https://cr.console.aliyun.com/cn-hangzhou/instances/repositoriesurl

2.2 server

按照阿里雲的提示進行鏡像推送。blog

先登陸,密碼爲阿里雲的帳號密碼

推送鏡像,注意鏡像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用來編排管理。

相關文章
相關標籤/搜索