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

种地  金牌会员 | 2023-4-21 02:20:14 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 933|帖子 933|积分 2799

记录Docker的-v指令使用

前言

之前我浅学了一下docker,方便部署.net项目(部署的是打包之后的项目)
dockerfile文件如下:
  1. FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
  2. WORKDIR /app
  3. EXPOSE 5031
  4. EXPOSE 7031
  5. FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
  6. WORKDIR /src
  7. COPY . .
  8. ENTRYPOINT ["dotnet", "Personalblog.dll"]
复制代码
然后下载镜像,创建容器,都是使用的如下命令:
  1. docker build -t app .
  2. docker run -d -p 80:80 --name app app
复制代码
问题出现

如果只是简单的使用上面的命令,是可以正确的部署项目,但是会出现一个问题,就是我项目如果更新了的话。我需要先删除容器,还要删除镜像才能重新部署。如果我只是单纯的删除容器重新部署的话,项目是不会更新的。
为什么会出现这个原因呢?
就是因为我没有挂载目录,docker默认挂载了一个随机名的目录,如果我不删除镜像,无论我创建多少个容器,项目还是不会变。
问题解决

如何解决这个问题,很简单,只需要使用-v指令就行了
如下:
  1. docker run -d -p 80:80 -v 项目路径:/src --name app app
复制代码
这样子部署容器之后,镜像中就会将挂载路径指向你的项目路径,这样子每次项目更新只需要删除容器,然后重新创建容器即可。
注意:这是.net项目,挂载路径为/src,其他的项目还没了解,我试着改过这个挂载路径,但是不太行,创建容器的时候,容器中会自动给你创建一个src目录,如果有解决办法可以评论该篇文章,迫切希望各位大佬解答我的疑惑。
扩展

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表