轉發請註明此文章做者與路徑,請尊重原著,違者必究。html
本篇文章與其它系列文章不一樣,爲了方便測試,新建了一個ASP.Net Core視圖應用。linux
備註:下面說的應用,只是在容器中運行的應用程序。docker
容器中已經運行了一個應用testaspnetcoredockerlinuxname,版本是1.0。咱們下面查看一下已經在運行中的應用。post
輸入命令【sudo docker ps】能夠看到運行中的容器。測試
紅色線的就是咱們要升級的正在運行中的容器。版本是1.0。ui
輸入命令【sudo docker images】看到docker中的鏡像,Tag版本是1.0。url
testaspnetcoredockerlinuxname在上面的版本是1.0,下面咱們構建1.1版本。spa
使用命令構建鏡像【sudo docker build -t testaspnetcoredockerlinux:1.1 .】htm
運行一大堆命令後,構建成功了。使用命令檢查鏡像信息:【sudo docker images】blog
構建完成鏡像後,咱們試一下構建應用在容器中運行。
運行【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/
咱們檢查一下是否更新到版本,【sudo docker ps】查看運行中的容器。
容器運行成功,而且是最新的1.1版本。
因此,整體步驟是:建立新應用->中止舊應用->刪除舊應用容器->構建並運行新應用。
系列文章
Docker在Linux/Windows上運行NetCore文章系列
能夠關注本人的公衆號,多年經驗的原創文章共享給你們。