• 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

  • 相关阅读:
    【刷题】面筋-mysql-如何对数据库进行备份
    【刷题】面筋-数据库-mysql的优化
    【刷题】面筋-MySQL中char、varchar和text三者的区别
    【刷题】面筋-sql-学生成绩单里两门成绩>80的学生名字
    【刷题】面筋-网络-无效链接,死链接,错误链接
    【刷题】面筋-算法-在海量IP中找出访问次数最多的100个IP
    【刷题】面筋-shell:统计一个文件中重复的行和重复次数
    【刷题】面筋-linux-如何查找出现频率最高的100个ip地址
    【刷题】面筋-linux 如何将文件从一台服务器转移到另一台服务器
    【刷题】面筋-Linux-vi显示或关闭行号:set number
  • 原文地址:https://www.cnblogs.com/alunchen/p/10216465.html
Copyright © 2020-2023  润新知