记录.Net部署Docker-v指令使用

记录Docker的-v指令使用

前言

之前我浅学了一下docker,方便部署.net项目(部署的是打包之后的项目)

dockerfile文件如下:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 5031
EXPOSE 7031

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src

COPY . .

ENTRYPOINT ["dotnet", "Personalblog.dll"]

然后下载镜像,创建容器,都是使用的如下命令:

docker build -t app .

docker run -d -p 80:80 --name app app

问题出现

如果只是简单的使用上面的命令,是可以正确的部署项目,但是会出现一个问题,就是我项目如果更新了的话。我需要先删除容器,还要删除镜像才能重新部署。如果我只是单纯的删除容器重新部署的话,项目是不会更新的。

为什么会出现这个原因呢?

就是因为我没有挂载目录,docker默认挂载了一个随机名的目录,如果我不删除镜像,无论我创建多少个容器,项目还是不会变。

问题解决

如何解决这个问题,很简单,只需要使用-v指令就行了

如下:

docker run -d -p 80:80 -v 项目路径:/src --name app app

这样子部署容器之后,镜像中就会将挂载路径指向你的项目路径,这样子每次项目更新只需要删除容器,然后重新创建容器即可。

注意:这是.net项目,挂载路径为/src,其他的项目还没了解,我试着改过这个挂载路径,但是不太行,创建容器的时候,容器中会自动给你创建一个src目录,如果有解决办法可以评论该篇文章,迫切希望各位大佬解答我的疑惑。

扩展

可以使用docker inspect 镜像名查看挂载路径,找到Mounts查看挂载信息。

原文链接:https://www.cnblogs.com/ZYPLJ/p/17338637.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:记录.Net部署Docker-v指令使用 - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • asp.net 无重复随机数代码

    针对“asp.net 无重复随机数代码”的问题,下面我介绍一下这个问题的解决思路和具体实现过程: 解决思路 实现无重复随机数,需要考虑两个方面: 随机数不能重复,需要做到去重。 生成的随机数需要随机分布,不能出现指定的规律。 基于这两个需求,我们可以采用以下思路来解决问题: 定义一个范围内的数组,用于存储随机数。 定义一个随机数生成器,用于生成指定范围内的随…

    C# 2023年5月31日
    00
  • asp.net 文章分页显示实现代码

    下面是关于实现asp.net文章分页显示的攻略和示例: 1. 确定分页参数 文章分页需要确定几个重要的参数: 每页显示的文章数量 当前页码 文章总数 总页数 可以根据以上参数进行分页计算,具体代码可以参考下面的示例。 2. 实现后端分页方法 接下来需要在代码中实现后端分页方法,下面是一个简单的示例: // 分页方法 public List<Articl…

    C# 2023年5月31日
    00
  • c#序列化详解示例

    C#序列化详解示例 本文将详细介绍C#中的序列化操作,并提供了两个示例,帮助读者更加深入地理解序列化的概念和操作方法。 什么是序列化 序列化是将一个对象转换成字节流的过程,通常用于在网络上或本地存储中传输或保存数据。在C#中,使用类库中的System.Runtime.Serialization命名空间中的类来实现序列化与反序列化操作。 如何序列化一个对象 步…

    C# 2023年5月15日
    00
  • C#使用System.Buffer以字节数组Byte[]操作基元类型数据

    操作基元类型数据时,我们通常需要进行数据类型转换,进行字节序列转换。而C#中的System.Buffer类提供了方便的功能,可以以字节数组Byte[]的形式对基本类型进行操作。以下是C#使用System.Buffer以字节数组Byte[]操作基元类型数据的完整攻略: 1. 引入命名空间 为了使用System.Buffer类,必须在代码中引入该命名空间。在代码…

    C# 2023年6月8日
    00
  • C++中#include头文件的示例详解

    下面是关于”C++中#include头文件的示例详解”的攻略: 什么是头文件? 在C++中,头文件是一种用于包含函数和变量定义的文件。这些文件通常包含函数和变量定义,使得在源代码中我们可以使用这些定义。通常情况下,头文件扩展名为.h。实际上,C++编译器不知道如何处理头文件,它只知道如何处理源代码文件,而头文件的作用就是将需要在源代码中用到的函数和变量定义放…

    C# 2023年6月6日
    00
  • C#中event内存泄漏总结

    下面是“C#中event内存泄漏总结”的完整攻略: 1. 内存泄漏是什么? 所谓内存泄漏,指的是在编写代码时没有正确地释放不再需要的内存,导致程序占用过多的内存空间,从而影响程序的正常运行。 在C#中,经常会涉及到事件(event)的使用,而事件如果不处理好可能会导致内存泄漏问题。 2. 常见的event内存泄漏情况 2.1 订阅事件未取消 当一个对象注册了…

    C# 2023年5月15日
    00
  • C#中的自动类型转换和强制类型转换

    C#中的类型转换包括自动类型转换和强制类型转换两种方式。 自动类型转换 当一个变量的数据类型的范围小于另一个变量的数据类型范围时,C#会自动将小范围类型数据转换成大范围类型。这种转换方式叫做自动类型转换。 示例: int a = 10; double b = a; // 自动类型转换 在这个例子中,整型变量a的数据类型范围小于double类型的数据范围。所以…

    C# 2023年5月15日
    00
  • C#线程定义和使用方法详解

    C#线程定义和使用方法详解 在C#编程中,线程常常被用于多任务处理、后台计算等操作,本文将详细介绍C#的线程定义和使用方法。 线程定义 线程是进程中独立运行的一个执行流,由操作系统负责调度和执行。C#提供了Thread类来封装线程相关的操作。线程定义的一般语法如下: Thread thread = new Thread(new ThreadStart(Run…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部