游乐游手机版
首页/编程语言/文章详情

NET应用Docker部署中v指令参数详解

时间:2026-05-07 13:00
记录Docker的-v指令使用 前言 之前接触Docker,主要是为了解决 NET项目的部署问题——具体来说,是部署打包编译后的产物。当时用的Dockerfile大致长这样: FROM mcr microsoft com dotnet aspnet:6 0 AS base WORKDIR app

记录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

这样部署后,容器内的 /src 目录就会直接指向你本地的项目路径。之后项目再有更新,只需删除旧容器,然后用上面的命令重新创建一个新的就行,镜像完全无需动。

需要注意的是,这个挂载路径 /src 是针对.NET项目Dockerfile里 WORKDIR /src 这个设置来的。其他类型的项目挂载点可能不同。尝试过修改这个路径,但容器启动时似乎会自动生成一个src目录,具体机制还有待深究。如果哪位有更优雅的解决方案,欢迎分享探讨。

扩展

如果想查看一个容器具体的挂载详情,可以用这个命令:docker inspect 容器名。在输出的JSON信息里,找到 Mounts 字段,就能看到完整的挂载源和目标路径了。

来源:https://www.jb51.net/article/281929.htm
上一篇ASP错误捕获全面指南几种常见处理方法详解 下一篇ASP防SQL注入攻击技巧实例教程详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CentOS与Golang打包常见兼容性问题探讨
编程语言 · 2026-07-01

CentOS与Golang打包常见兼容性问题探讨

CentOS与Golang打包的兼容性问题集中在glibc版本不匹配、交叉编译环境变量错误、依赖库缺失及Go依赖管理不规范。可通过Docker容器编译、选择兼容Go版本、正确设置GOOS GOARCH环境变量、安装对应开发包及使用GoModules解决。

CentOS中Fortran与Python如何协同工作从入门到实战完整教程
编程语言 · 2026-07-01

CentOS中Fortran与Python如何协同工作从入门到实战完整教程

在CentOS中,Fortran与Python可通过f2py、SWIG、共享库调用或subprocess协同。f2py封装Fortran为Python模块,支持数组运算;共享库需手动对齐数据类型;系统调用适合独立计算。

CentOS中Golang打包优化方法
编程语言 · 2026-07-01

CentOS中Golang打包优化方法

在CentOS中优化Golang编译打包,可显著提升编译速度并减小二进制文件体积。关键技巧包括:设置环境变量、使用Go模块管理依赖、编译时添加-ldflags= "-s-w "去除调试信息、利用UPX工具压缩、运行strip清理符号表,以及优化cgo内C代码的编译选项。综合运用这些方法能有效优化最终程序。

在CentOS系统中cpustat与其他工具协同使用的完整方法
编程语言 · 2026-07-01

在CentOS系统中cpustat与其他工具协同使用的完整方法

cpustat作为sysstat包的CPU监控工具,可通过管道与grep等命令配合过滤数据,利用脚本自动记录带时间戳的日志,或结合图形工具查看,也可格式化输出后接入Zabbix、Grafana等Web监控系统,实现可视化与告警。

CentOS中readdir与其他Linux发行版的差异
编程语言 · 2026-07-01

CentOS中readdir与其他Linux发行版的差异

CentOS基于RHEL,与Ubuntu、Debian、Fedora在包管理器(yum dnfvsapt)、默认文件系统(XFSvsext4)等存在差异,但readdir等系统调用遵循POSIX标准,行为一致。