• 如何更新docker业务镜像及容器,使用dockercompose up命令


    项目迭代发布新版本的时候,需要重新构建业务镜像,重新运行docker容器。

    老方法:先停止再删除容器 最后删除镜像

    docker stop 容器ID
    docker rm 容器ID
    docker rmi 镜像ID
    构建镜像:docker build -t 业务镜像名:Tag .【例子:docker build -t crm:v1.2.2 .】 前提先进入到发布的文件夹
    运行容器:docker run -d --name 容器名 -p 对外端口:内部端口 业务镜像名

    若容器正在运行,进入容器内部:
    docker exec -it 容器名 bash

    退出容器:
    exit 或者 CTRL + D

    无法启动容器 可查看日志:
    docker logs 容器id

    使用docker-compose方法:

    配置好docker-compose.yml 文件,然后

    docker-compose stop
    docker-compose up -d --build

    项目更新迭代:
    发布且运行容器:docker run -d --name 容器名 -p 对外端口:内部端口 -v /www:/app 业务镜像名
    其中:
    --name指定容器名称
    -d 指定容器后台运行
    -p 指定外部端口映射到容器端口
    -v 绑定数据卷/www到容器内的/app (本地目录:容器内目录)本地目录必须为绝对路径

    由于在创建容器的时候映射了数据卷,则当有静态文件更新的时候,会自动更新到容器内。
    但是当有dll文件更新时,需要手动重启一下容器
    docker restart 容器名

    通过docker inspect 容器名 命令查看容器在宿主机上生成的挂载目录,主要看Mounts属性

    以上,实现了将一个Asp.Net Core MVC项目发布到docker中的全过程。
    并且通过地址访问网站实际上是直接访问的Kestrel服务器。

    一些额外的想法
    Kestrel服务器只是一个轻量级的web服务器,并且不支持基于主机名的绑定(如果1台服务器部署了多个 ASP.NET Core 站点,每个站点需要使用不同的端口)
    出于安全性考虑(包括但不限于适当的超时,大小的限制,以及并发连接限制等问题)需要在Kestrel和Internet之间加入一个反向代理服务器(IIS,Nginx或者Apache)

    参考以下原文:
    https://www.cnblogs.com/yyee/p/12954995.html
    https://www.cnblogs.com/cplemom/p/11142857.html

  • 相关阅读:
    Integer Inquiry
    dfs求最短路径
    5.E
    5.H
    5.C
    5.A
    5.J
    POJ
    POJ
    POJ
  • 原文地址:https://www.cnblogs.com/hong01072/p/13946953.html
Copyright © 2020-2023  润新知