zoukankan      html  css  js  c++  java
  • aspnet core in docker

    1 创建一个文件夹(app), 将项目发布后的文件放入该文件夹中 并且创建Dockerfile文件

    2 打开Dockerfile文件,编辑一下内容

      

    #基于 `microsoft/dotnet:1.0.0-core` 来构建我们的镜像
    #FROM mcr.microsoft.com/dotnet/core/sdk:2.2
    FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
     
    #拷贝项目app文件夹中的所有文件到 docker容器中的app文件夹中 
    COPY . /app
     
    #设置接下来的工作路 `/app` 文件夹,可以设置多次,最后一个即容器启动默认的工作目录
    WORKDIR /app
     
    #设置Docker容器对外暴露8003端口
    EXPOSE 5000
     
    #使用`dotnet testmvc.dll`来运行应用程序
     
    CMD ["dotnet", "WebCore.dll"]

    说明 

    • FROM 表示项目所要依赖的环境

    • COPY . /app:将当前目录下的所有文件(,都拷贝进入 image 文件的/app目录。

    • WORKDIR /app:指定接下来的工作路径为/app,可以设置多次,最后一个即容器启动默认的工作目录。WORKDIR指令设置Dockerfile中的任何RUN,CMD,ENTRPOINT,COPY和ADD指令的工作目录。如果WORKDIR指 定的目录不存在,即使随后的指令没有用到这个目录,都会创建。

    • EXPOSE 5000:将容器 5000 端口暴露出来, 允许外部连接这个端口。貌似没啥用。设置不设置都可以

    • CMD 它表示容器启动后默认自动执行的命令

    mcr.microsoft.com/dotnet/core/sdk:2.2 =>此示例将此映像用于生成应用。 此映像包含带有命令行工具 (CLI) 的 .NET Core SDK。 此映像对本地开发、调试和单元测试进行了优化。 为开发和编译而安装的工具使其成为一个相对较大的映像。
    主要是用于编译环境,如果你的镜像文件用都是发布后的dll不需要配置这个依赖

    mcr.microsoft.com/dotnet/core/aspnet:2.2 =>此示例将此映像用于运行应用。 此映像包含 ASP.NET Core 运行时和库,并针对在生产中运行应用进行了优化。 此映像专为部署和应用启动的速度而设计,相对较小,因此优化了从 Docker 注册表到 Docker 主机的网络性能。 仅将运行应用所需的二进制文件和内容复制到容器。 已准备运行内容,以此实现从 Docker run 到应用启动的最快时间。 Docker 模型中不需要动态代码编译

    3 创建镜像,输入Docker命令:

       docker build -t aspnetapp .

    -t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。

    如果运行成功,就可以看到新生成的镜像。

    4 创建容器:

       docker run -it -p 5002:80 --name aspnetcontainer aspnetapp 

    -p 5002:80 表示将Docker主机的5002端口和Docker容器的80端口进行关联映射,即,外部访问使用5002端口,容器内部使用80端口,即 HTTP服务端口。

     

    5 Volume挂载:

      为了能够让容器的数据保存(持久化),docker提出Volume的概念。简单来说,就是将宿主的文件挂载到容器上的某个文件上,当容器操作被挂载的文件时,就相当于操作宿主的文件。

      可以通过-v参数指定(注:注意冒号前后的内容) docker  run  -v  /host/path:/some/path ,此时会在容器中创建/some/path这样一个目录文件,如果该目录文件存在,会将文件里的内容清空

      eg:docker run -d -p 5002:80 --name netcoreapp -v /opt/netcoreapp/logs:/app/logs  netcoreapp 

    6 进入容器

        docker exec -it 容器名字或者Id  bash  eg:docker exec -it netcoreapp bash

      使用 exit 退出容器  

    参考网址:

      http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

      https://www.cnblogs.com/flame7/p/9210986.html

     
  • 相关阅读:
    Dephi XE 编译后执行文件的路径怎么改
    一名Delphi程序员的开发习惯
    Delphi AnimateWindow 用法 淡入淡出窗口
    Delphi开发DLL
    delphi 中配置文件的使用(*.ini)
    Delphi中根据分类数据生成树形结构的最优方法
    Delphi語法筆記
    2015年10月19日 做过的面试题(四)
    ios 客户端定位的3种方法
    常用开源镜像站整理android sdk manager
  • 原文地址:https://www.cnblogs.com/Tony100/p/11341267.html
Copyright © 2011-2022 走看看