【Docker】使用VS创建、运行、打包、部署.net core 6.0 webapi

news2025/4/11 5:04:12

欢迎来到《小5讲堂》,大家好,我是全栈小5。
这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 前言
  • 创建项目
    • 创建新项目
    • 配置新项目
    • 启动Docker
    • 项目结构
  • 启动项目
    • 首次启动
    • 二次启动
    • 运行容器
    • 访问效果
    • 增加API接口
  • 打包部署
    • 项目打包
    • 部署启动
    • 访问接口
  • 相关文章

前言

前一篇文章已经在Docker Desktop管理工具尝试添加Docker Nginx容器,也成功访问到前端页面。
本篇文章将在Docker下部署.net core项目,并访问core项目下的接口返回数据。

创建项目

创建新项目

博主这里选择的是ASP.NET Core Web API,指名项目只支持api接口,已经是完全前后端分离的思想框架。
在这里插入图片描述

配置新项目

主要填写项目名称、项目存放位置路径,解决方案和项目是否放在同一目录
在这里插入图片描述

  • 在同一目录
    在这里插入图片描述
  • 不在同一目录
    在这里插入图片描述

启动Docker

博主这里选择的是.NET 6.0(支持.net framework和.net core),并且启用Docker,并且Docker OS选择Linux
在这里插入图片描述

项目结构

完成上面步骤选择后,下面是默认项目结构,在项目文件夹下是由Dockerfile文件,比如:可以设置防止乱码之类的参数
在这里插入图片描述
Dockerfile 是在使用 Docker 构建容器镜像时使用的文本文件。
它包含一系列指令和参数,用于定义如何构建镜像以及运行容器的配置。
在 VS (.NET Core) 开发中,Dockerfile 通常用于构建和部署 .NET Core 应用程序的容器镜像。
它提供了一种可重复、可管理的方式来定义所需的软件环境、依赖项和运行时配置。
通过 Dockerfile,可以指定基础镜像、添加应用程序代码、安装所需的库和工具、设置环境变量、指定工作目录和端口暴露等步骤。
一旦 Dockerfile 定义完成,可以使用 Docker 命令来构建镜像,然后使用该镜像创建和运行容器,从而轻松地在不同的环境中部署和运行 .NET Core 应用程序。

Dockerfile 的作用是提供了一种可重复、可扩展和可移植的方式来构建和配置容器镜像。
它使得开发人员可以更轻松地管理应用程序的依赖和运行时环境,并能够在不同的开发、测试和生产环境中保持一致的部署体验。
此外,使用 Dockerfile 还可以实现自动化构建和持续集成/交付 (CI/CD) 流程,加快应用程序的开发和发布速度。

启动项目

首次启动

VS直接F5启动运行项目后,第一次会自动生成了2个容器(这个是因为Dockerfile有相关参数设置或者系统识别)
在这里插入图片描述

二次启动

出现下面这个提示,多次下一步后运行第二次
在这里插入图片描述
第二次运行和第一次有点不同,少了一个容器,只有主项目名称一致全小写的容器
在这里插入图片描述

运行容器

在自动创建好的容器镜像列表,点击Action按钮,会弹出一个配置端口等信息窗口,保存后就会在容器列表有一条记录,点击端口会跳转到浏览器页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

访问效果

跳转到浏览器页面,可以看到返回了接口api数据
在这里插入图片描述

增加API接口

在这里插入图片描述
在这里插入图片描述

打包部署

上面是通过运气启动的容器,若停止VS调试运行,则访问会失效,因此可以通过打包部署到docker容器里,然后在单独容器里启动

项目打包

cmd命令:docker build -t mycorehub -f ./Dockerfile .
定位到具体目录:cd /d 自己路径

在这里插入图片描述
在这里插入图片描述

cmd查看容器镜像:docker images
如果能够查看到自己容器镜像名称,那么说明打包成功,并且在Docker Desktop镜像列表也会有一条记录

在这里插入图片描述
在这里插入图片描述

部署启动

打包生成好容器镜像后,点击Actions按钮会弹出下面窗口,填写好信息后会生成容器,特别是填写端口号
在这里插入图片描述

访问接口

可以看到有乱码,这里留个疑问,小伙伴们可以想下如何解决!
在这里插入图片描述

相关文章

【Docker】linux、nginx、容器镜像三者基本概念
【Docker】在Windows下使用Docker Desktop创建nginx容器并访问默认网站
【Docker】在Windows操作系统上安装Docker
【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(1)

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1426461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DDD】学习笔记-限界上下文对架构的影响

通信边界对架构的影响 限界上下文的通信边界会对系统的架构产生直接的影响,在此之前,我们需要理清几个和边界有关的概念。如前所述,我提出了限界上下文的通信边界的概念,并将其分为进程内通信与进程间通信两种方式。在 Toby Clem…

文生图提示词:城市景观

场景描述 --城市景观 Urban Landscapes 涵盖了多种城市景观元素,可以用于精确地表达 AI 生成图像中所需的城市环境。 Cityscape 城市景观 Downtown 市中心 Skyline 天际线 Skyscraper 摩天大楼 Street 街道 Avenue 大道 Boulevard 林荫大道 Plaza 广场 Park 公园 Si…

STM32——看门狗

STM32——看门狗 1.独立看门狗IWDG 独立看门狗介绍 什么是看门狗? 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断&#x…

kubekey网页版安装k8s集群操作流程

kubekey可以一键拉起k8s集群并完成kubesphere的部署,以后kubekey简称kk。kk 3.2版本以前都是在宿主机上完成对应的创建集群、添加节点、升级等操作的,3.2版本后开始往页面操作的方向演进,kk 3.2版本现在还是alpha,所以不推荐在生产…

Unity3d Shader篇(一)— 顶点漫反射着色器解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、顶点漫反射着色器是什么?1. 顶点漫反射着色器的工作原理 二、编写顶点漫反射着色器1. 定义属性2. 创建 SubShader3. 编写着色器程序段4. 完成顶…

面试宝典之深谈JVM

面试宝典之深谈JVM 1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译,到处运行 2.JVM可以运行Class文件 2.JDK,JRE以及JVM的关系 3.我们的编译器到底干了什么事? 仅仅是将我们的 .ja…

coreldraw怎么添加箭头?

使用coreldraw的时候知道箭头在哪里添加吗?下面小编就给大家带来coreldraw箭头添加教程,有需要的小伙伴不要错过哦。 coreldraw添加箭头方法 1、首先选择桌面Coreldraw格式图片。 2、然后点击文件夹按钮打开文件。 3、最后点击上方工具横线&#xff0c…

2024最新版TypeScript安装使用指南

2024最新版TypeScript安装使用指南 Installation and Development Guide to the Latest TypeScript in 2024 By JacksonML 1. 什么是TypeScript? TypeScript is JavaScript with syntax for types. – typescriptlang.org TypeScript 是 JavaScript 的一个超集,…

WPS WORD 宏导出高亮文本

WPS手机版可以直接导出高亮文本,但只能导出手机编辑的部分,如果同时在电脑上编辑过,电脑上高亮的无法导出,因为作者不一样。 但WPS电脑版没有这个功能,只能通过宏编程实现。 这里利用了审阅模式,在文字高亮…

Cesium 展示——加载 glb 格式的数据

文章目录 需求分析需求 加载渲染 glb 格式的数据, 并实现模型上的点击事件 分析 模型加载// 加载模型const position = new Cesium.Cartesian3.fromDegrees(118.29355875458516,39.51516823255016

Flink 流式读取 Debezium CDC 数据写入 Hudi 表无法处理 -D / Delete 消息

问题场景是:使用 Kafka Connect 的 Debezium MySQL Source Connector 将 MySQL 的 CDC 数据 (Avro 格式)接入到 Kafka 之后,通过 Flink 读取并解析这些 CDC 数据,然后以流式方式写入到 Hudi 表中,测试中发现…

HarmonyOS4.0系统性深入开发31创建列表(List)

创建列表(List) 概述 列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用…

贰[2],Xamarin生成APK

1,生成改为Release版本 2,选中****.Android项目 3,点击生成,选择存档 4,点击分发 5,选择临时 6,添加签名标识 7,选择对应的签名标识,点击另存为

el-table动态合并

废话就不多说了&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; 合并行 // 方法一 <template><div class"container"><el-table :data"dataSource" :border"true":header-cell-style"{ font-weight: normal,…

数学建模-退火算法和遗传算法

退火算法和遗传算法 一&#xff0e;退火算法 退火算法Matlab程序如下&#xff1a; [W]xlsread(D:100个目标经度纬度);>> x[W(:,1)];>> y[W(:,2)];>> w[x y];;d1[70, 40];>> w[d1;w;d1]ww*pi/180;%角度化成弧度dzeros(102);%距离矩阵初始化for i1:101…

新手不会Git也能玩Github吗?

新手不会Git也能玩Github吗&#xff1f; 前言使用Github的准备步骤使用一种访问外网资源的方法&#xff08;这一步才是新手最容易&#xff09;注册账号 创建一个自己的仓库创建完仓库后的界面 搜索你想要的代码类型以搜索坦克大战为例以下载烟花代码为例 总结 前言 说到Github&…

kafka入门学习

kafka官网&#xff1a; Apache Kafka Index of /34 kafka学习视频&#xff1a; 05_尚硅谷_Kafka_概述_基础架构_哔哩哔哩_bilibili 学习资料&#xff1a; &#xff08;1&#xff09;【万字长文】浅谈Apache Kafka --- 入门须知 https://km.woa.com/articles/show/516284…

yolov8数据标注、模型训练到模型部署全过程

文章目录 一、数据标注&#xff08;x-anylabeling&#xff09;1. 安装方式1.1 直接通过Releases安装1.2 clone源码后采用终端运行 2. 如何使用 二、模型训练三、模型部署3.1 onnx转engine3.2 c调用engine模型3.2.1 main_tensorRT.cpp3.2.2 segmentationModel.cpp 一、数据标注&…

谷粒商城【成神路】-【3】——三级分类

目录 &#x1f37f;1.查询三级分类 &#x1f9c2;2.前端页面搭建 &#x1f35f;3.添加网关 &#x1f373;4.解决跨域 &#x1f9c7;5.显示分类 &#x1f95e;6.显示复选框 1.查询三级分类 1.controller 直接调用service层的接口 RequestMapping("/list/tree&qu…

02.PostgreSQL运算符

1. 算术运算符 算术运算符 描述 示例 + 加法运算符 SELECT A+B - 减法运算符 SELECT A-B * 乘法运算符 SELECT A*B / 除法运算符 SELECT A/B % 取余运算符 SELECT A%B 1.1 加法与减法操作符 SELECT 100,100+11,100-11,100+23.0,100-23.0 运算结果 由此得出结论: 一个整数加上…