Docker在Linux上運行NetCore系列(五)更新應用程序


轉發請注明此文章作者與路徑,請尊重原著,違者必究。

 

      本篇文章與其它系列文章不同,為了方便測試,新建了一個ASP.Net Core視圖應用。

      備注:下面說的應用,只是在容器中運行的應用程序。

 

查看現在運行的應用

      容器中已經運行了一個應用testaspnetcoredockerlinuxname,版本是1.0。我們下面查看一下已經在運行中的應用。

      輸入命令【sudo docker ps】可以看到運行中的容器。

      紅色線的就是我們要升級的正在運行中的容器。版本是1.0。

clipboard

 

      輸入命令【sudo docker images】看到docker中的鏡像,Tag版本是1.0。

clipboard

 

開始升級應用

      testaspnetcoredockerlinuxname在上面的版本是1.0,下面我們構建1.1版本。

      使用命令構建鏡像【sudo docker build -t testaspnetcoredockerlinux:1.1 .

      運行一大堆命令后,構建成功了。使用命令檢查鏡像信息:【sudo docker images

clipboard

 

      構建完成鏡像后,我們試一下構建應用在容器中運行。

      運行【sudo docker run --name testaspnetcoredockerlinuxname -p 8089:80 testaspnetcoredockerlinux:1.1】的時候,報下面的錯誤:

docker: Error response from daemon: Conflict. The container name "/testaspnetcoredockerlinuxname" is already in use by container "59553212df7cc9a2524fe896d21f0bac9936a03806cbeeae6595d9f97c3c9fe8". You have to remove (or rename) that container to be able to reuse that name.

      意思是已經存在容器的名稱,要么更改舊應用容器名稱,要么把舊應用容器刪除。

 

      自行想了一下,可以使用創建新應用並運行(新應用名稱后面加-temp)->停止舊應用容器->刪除舊應用容器->重命名新應用為舊應用名稱的方法。

      上面的步驟可以,但是試的時候因為對外暴露的端口舊應用已經在用,一台機器只能對外一個端口。所以要先刪除舊應用才可以安裝新應用。

      下面我們使用更新應用的另外一種方案,比較暴力。停止舊應用->刪除舊應用->構建並運行新應用。

步驟如下                                          

      先停止舊容器應用【sudo docker stop testaspnetcoredockerlinuxname

      然后刪除舊容器應用【sudo docker container rm testaspnetcoredockerlinuxname

      再構建新應用到容器【sudo docker run --name testaspnetcoredockerlinuxname -p 8089:80 testaspnetcoredockerlinux:1.1】。注意這里是1.1版本。

      到此新應用運行成功了。輸入網址:http://192.168.3.220:8089/

clipboard

 

      我們檢查一下是否更新到版本,【sudo docker ps】查看運行中的容器。

      容器運行成功,並且是最新的1.1版本。

clipboard

 

      所以,總體步驟是:創建新應用->停止舊應用->刪除舊應用容器->構建並運行新應用。

 

系列文章

Docker在Linux/Windows上運行NetCore文章系列

 

可以關注本人的公眾號,多年經驗的原創文章共享給大家。

914305-20181015182707033-510683802


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM