zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    STL++?pb_ds平板电视初步探索
    STL二分查找函数的应用
    线性DP LIS浅谈
    Manacher算法(马拉车算法)浅谈
    KMP瞎扯一下
    2018/11/9 周五集训队第四次测试赛补题题解
    洛谷P1294 高手去散步
    差分数组浅谈
    树状数组浅谈
    plugins标签:分页助手PageHelper的实现
  • 原文地址:https://www.cnblogs.com/duanjt/p/14697942.html
Copyright © 2011-2022 走看看