Docker Desktop 通过本地命令运行.net core程序

咱们知道,想要通过docker运行.net core程序,那么我们需要将.net core程序通过Dockerfile制作成镜像,然后就可以基于镜像创建容器,同时也可以对镜像和容器进行导出。然而这样的方式就会造成docker容器中的日志文件或配置需要进入到docker里面去查看或修改,于是我们通过docker run运行容器时需要增加一个参数--volume , -v,这个参数就是将物理机的磁盘路径映射到docker磁盘路径,映射之后物理磁盘的文件就可以覆盖docker里面对应的目录文件,我们就可以通过物理文件来间接修改docker文件了,这里有一个原则:docker容器不保存核心数据,所有的核心数据都需要输入到物理磁盘

通过上面的介绍能够知道,本地文件可以直接覆盖docker文件,因此我们也可以使用另外一种方式,那就是不需要通过Dockerfile制作程序镜像,直接用官方的镜像mcr.microsoft.com/dotnet/aspnet:3.1,我们只需要将本地的文件夹映射到docker容器里面即可,具体命令如下:

docker run -d -p 8077:80 --name gdnp -v D:/Release/netcoreapp3.1:/app --workdir /app mcr.microsoft.com/dotnet/aspnet:3.1 dotnet /app/WebApplication1.dll

解释一下:

-d:后台运行

-p:端口映射,物理机的8077端口映射到docker容器的80端口

--name:给容器取一个名字叫gdnp

-v:磁盘映射,物理机的D:/Release/netcoreapp3.1路径映射到docker容器的/app路径。因为docker容器是Linux,因此路径以斜杠开头(/)

--workdir:启动容器后的默认工作目录,因为我们的程序是映射到/app路径的,因此工作目录也定义为/app路径

mcr.microsoft.com/dotnet/aspnet:3.1:这个是镜像的名称和版本号,这里我们用的是微软官方的镜像

dotnet /app/WebApplication1.dll:容器启动后需要运行的命令,因为.net core程序的启动命令是dotnet。因此这样定义。

更多参数解析可参考:https://www.runoob.com/docker/docker-run-command.html

posted @   段江涛IT  阅读(616)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
页脚HTML代码
点击右上角即可分享
微信分享提示