zoukankan      html  css  js  c++  java
  • .net4.5部署到docker容器

    .net4.5部署到docker容器

    1. 部署到windows容器
    2. 部署到linux容器

    部署到windows容器

    由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像。

    1. 两个现成的例子
      .net console程序
    docker run --rm mcr.microsoft.com/dotnet/framework/samples:dotnetapp
    
    

    .net web程序

    docker run -it --rm -p 8000:80 --name aspnet_sample mcr.microsoft.com/dotnet/framework/samples:aspnetapp
    
    
    1. 为自己项目添加一个Dockerfile构建镜像
    FROM microsoft/aspnet  
    ARG source  
    WORKDIR /inetpub/wwwroot  
    COPY ${source:-obj/Docker/publish} . 
    

    参考:https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc

    部署到linux容器

    对于非.net core的应用程序来说,要想在linux平台运行需要安装mono框架,这是在linux平台运行.net程序的唯一方法,那么如果想把.net程序部署到linux容器里,也是一样的方法过程,你需要构建一个安装有mono环境的镜像。

    为自己的项目添加一个基于mono的Dockerfile

    1. 制作一个console app的Dockerfile并运行
    FROM mono:latest
    RUN mono --version
    WORKDIR /app
    COPY ./bin/Debug/ .
    CMD [ "mono",  "monoApp.exe" ]
    
    

    打包镜像

    cd monoapp #Docfile所在目录,它一般在项目根目录
    docker build . -t monoapp
    docker run monoapp
    

    执行结果

    MacBook-Pro-6:monoApp lind.zhang$ docker run monoapp
    Hello World!
    MacBook-Pro-6:monoApp lind.zhang$
    
    1. 制作一个.net web的Dockerfile并运行

    前提:我们的web项目要想运行,需要有一个像IIS一种的服务器组件,在linux里我们一般使用jexus来实现这个功能,也就是说,我们的docker镜像应该即有mono还要有jexus的集成,这个镜像我们可以自己写,也可以使用现成的镜像 azraelrabbit/monupw,下面的Dockerfile是把一个web项目monoMvc打包成一个镜像。

    先把镜像拉到本地

    docker pull azraelrabbit/monupw
    

    部署的步骤

    1. 建立Dockerfile文件,发布网站时应该带上
    2. 发布网站
    3. 进行发布后的地址
    4. 打包 docker build . -t 镜像名称
    5. 启动容器 docker run -d -p 8080:80 镜像名称

    编写Dockerfile文件

    FROM azraelrabbit/monupw
    EXPOSE 80
    WORKDIR /data
    COPY ./bin/ .
    

    启动你的容器,对外访问用8080端口,容器内部是80端口

    MacBook-Pro-6:monoMvc lind.zhang$ docker run -p 8080:80 monomvc
    Starting ... OK
    
  • 相关阅读:
    【应用】SVG饼状图
    【应用】图片翻转js
    userData IE
    cookie
    Local storage htm5
    全局ajax事件
    jQuery ajax序列化函数
    jQuery ajax中的get请求方法汇总
    $.ajax()
    nodejs安装错误
  • 原文地址:https://www.cnblogs.com/lori/p/10685107.html
Copyright © 2011-2022 走看看