• netcore3.1 dockerfile 生成镜像 并 部署到 linux 系统


    十年河东,十年河西,莫欺少年穷

    学无止境,精益求精

    我的dockerID 为:chenwolong2022

    密码:你们自己猜吧

    邮箱:@163.com

    更详细信息可参考https://www.cnblogs.com/yiting/p/13388155.html  或   http://t.zoukankan.com/shapman-p-13545457.html

    自学了半月的docker,今天实战一次,把.net项目部署到linux,实现net跨平台

    先列出我的docker系列博客:https://www.cnblogs.com/chenwolong/category/2140023.html

    那么,先从最简单的项目开始吧

    VS2019 新建一个netCore 3.1 项目,名字:webApp

     自定义一个控制器

        [Route("api/[controller]")]
        [ApiController]
        public class HomeController : ControllerBase
        {
            [HttpGet]
            [Route("getUid")]
            public IActionResult getUid()
            {
                string s = helper.getguid();
                return Ok(s);
            }
        }

    待会我们就通过访问这个接口,看看是否部署成功

    helper.getguid();是一个非常简单的方法,就是获取一个GUID

        public class helper
        {
            public static string getguid()
            {
                return Guid.NewGuid().ToString("N");
            }
        }

    项目搭建完毕,右键项目,添加,docker 支持 ... 生成dockerfile文件

    这里我们不使用系统默认的Dockerfile文件,将Dockerfile文件内容编辑为如下:

    #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
    
    FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    
    COPY . .
     
    ENTRYPOINT ["dotnet", "webApp.dll"]

    然后将Dockerfile的属性修改为:始终复制

     发布项目到文件系统:

     发布成功后,将发布的文件上传至linux系统

     我放在了这里

     然后通过 build Dockerfile 生成项目镜像,注意:我已经在linux系统中指向了 webapp 目录,所以,这里的Dockerfile 采用的相对路径

    docker build -f Dockerfile  -t webapp:1.0 .

     生成镜像成功,我们来查看下生成的镜像

     将镜像打包为容器,暴露 8088 和 1433 端口

    docker run -it --name webapp01 -p 8088:80 -p 1433:433  5d1469a33ffc /bin/bash

     打包成功后,先按 ctrl +p+q 退出容器,然后查看容器信息

     查看容器详细信息

     docker inspect 01ca5fe5d6d4

     说明端口暴露成功

    最后查看linux的网络配置

    ifconfig

     我们可以通过阿里云内网地址进行项目的访问,如下:http://192.168.136.134:8088/api/home/getuid

     项目访问成功,这样就以最简单的方式实现了NetCore的跨平台访问

    @天才卧龙的博客

  • 相关阅读:
    jTopo——js库
    node.js
    php 入门笔记
    D3 入门笔记
    webpack笔记
    React.js
    Grunt等前端自动化构建工具
    vue3.0的新特性
    electron-builder 打包流程
    vue里面如何下载图片,如何下载文件
  • 原文地址:https://www.cnblogs.com/chenwolong/p/nercoredocker.html
Copyright © 2020-2023  润新知