第43篇 Linux上使用docker部署.net8项目详细教程

news/2024/10/25 0:05:30/文章来源:https://www.cnblogs.com/chenshibao/p/18501537

在docker上部署自己的.net8 webapi,以腾迅linux云服务为例:

1.安装docker

1.1 查看docker是否已安装:

命令:docker -v
image

如果显示版本,说明已经安装成功,无需再安装

1.2 docker未安装,执行以下步骤安装

1.2.1 添加 Docker 软件源。

dnf config-manager --add-repo=http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo

1.2.2 查看已添加的 Docker 软件源。

dnf list docker-ce

1.2.3 安装docker

dnf install -y docker-ce --nobest

1.2.4 运行docker

systemctl start docker

1.2.5 查看docker信息

docker info

image

2.创建webapi项目

2.1 新建解决方案

image

写上自己业务逻辑的控制器和方法

2.2 选择项目AspNetCoreWebApi,

image

右键添加docker支持,添加成功会出现Dockerfile【D必须大写】
image

内容大致如下:

image

打开项目 目录 Properties 下 launchSettings.json 文件,将会看到新增的如下内容:

image

需要注意的是Dockerfile文件中的 EXPOSE后方的端口需要与 Properties\launchSettings.json 文件中的 ASPNETCORE_HTTP_PORTS 指定端端口一致,该端口在部署到 docker 后,将作为容器端口使用。

3.发布项目

3.1 发布上传

image

image

将public目录下的所有文件上传到linux服务器上,linux上传目录如下:/root/dockerwebapi/AspNetCoreWebApi/publish
image

3.2 定位到public同级目录,创建Dockerfile文件

touch Dockerfile
vim   Dockerfile

image

3.3 vim编辑,输入下面的内容

FROM mcr.microsoft.com/dotnet/aspnet:8.0.0
WORKDIR /publish
EXPOSE 18080
EXPOSE 443
COPY ./publish/ .
ENV ASPNETCORE_URLS http://+:18080
ENTRYPOINT ["dotnet","AspNetCoreWebApi.dll"]

注意:ENTRYPOINT ["dotnet","AspNetCoreWebApi.dll"]AspNetCoreWebApi.dll是我项目的dll。项目不一样名字就不一样。这里请用实际项目的dll名称哦

4.生成镜像

4.1 生成镜像

docker build -t AspNetCoreWebApi .

image

4.2 查看镜像

docker images

image
镜像创建成功

5运行镜像

docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi
#-d:后台运行     -P:暴露端口给客户端访问   --name 创建一个容器 指定镜像

image

输入下列命令。查看运行的进程。方便定位信息

docker ps

5.2 地址访问

image
image

成功访问,项目正常发布成功,nice!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-1将数组中的数逆序存放

24级一维数组 题目不难,就是格式啥的要看仔细楼#include<stdio.h> int main (){int a[11] = {0};int num;int input;scanf("%d",&num);for(int i=num-1;i>=0;i--){//逆序存放!!!scanf("%d",&input);a[i] = input;}for(int i=0;i<n…

无法删除文件,因为已在Windows资源管理器中打开

背景 文件夹/文件删不掉 解决 直接重启explorer即可。 win+x,a 打开终端。 kill -name explorer按理来说关闭后explorer会自动重启 start explorer图形界面方式 Ctrl+Shift+ESC,打开任务管理器。 点击详细信息,按名称排序找到explorer.exe,右键重新启动。

学习高校课程-软件设计模式-单例模式(lec5)

原文链接 Singleton: Intent Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance. Singleton 是一种创建性设计模式,它允许您确保一个类只有一个实例,同时提供对此…

手动上传图片,怎么调整大小和居中

原始格式![image](https://img2024.cnblogs.com/blog/2143851/202410/2143851-20241024173243352-290268296.png ) 目标格式<img src="https://img2024.cnblogs.com/blog/2143851/202410/2143851-20241024173243352-290268296.png" alt="image-2024070120285…

关于C语言指针类型的总结

关于C语言指针类型的总结前言 我个人将目前在C语言中所遇到的指针归类为8种,至于为何写第九点,是因为我个人认为第九点极容易与第五点混淆,故总结如下: 1.普通指针普通指针即最常见的如:int * 、 char*等 甚至于也可将一个数组如arr[5]的数组名arr看作是指针类型(因为指…

ClickHouse的下载与安装部署

ClickHouse 安装 一、了解ClickHouse ClickHouse是一个关系型数据库,说到关系型数据库,我们之前也学习到一个数据库Mysql,但是两者之间是有着很大区别的。MySQL数据库一般存储较少的数据(100万以内),而今天学习的ClickHouse存储的数据就相当之大,可以存储亿条数据。再者…

淘宝天猫卖家电话采集软件下载地址

淘宝天猫卖家电话采集软件下载地址 采集淘宝天猫店铺电话是一个相对复杂且敏感的任务,因为淘宝和天猫平台通常不允许直接大规模采集店铺数据,这涉及到隐私保护和平台规则的问题。然而,我可以提供一些合法且合规的方法来获取店铺联系方式,并给出一个简化的代码示例来说明如何…

帝国cms后台忘记了安全提问及密码该如何找回?

| 找回项目 | 方法 | |------------------|--------------------------------------------------------------------| | 忘记后台管理员帐号 | 用phpmyadmin查看`phome_enewsuser`表里的记录:查…

CTF Week8 WP

作业管理系统 简单的PHP上传,传一个带shell的php文件就可以了.示例文件 <?php echo shell_exec("ls /"); echo shell_exec("cat /flag"); phpinfo(); ?>来源:题库LocalCat 验证是否为本地用户,在请求头部添加X-Forwarded-for: 127.0.0.1即可.来…

忘记EyouCMS后台密码解决办法

如果你忘记了EyouCMS的后台登录密码,可以通过以下步骤快速重置: 1. 准备重置文件下载附件:从可信来源下载重置密码的脚本文件setpwd.php。 解压文件:将下载的压缩包解压,得到setpwd.php文件。2. 上传文件上传文件:将setpwd.php文件上传到你的网站根目录。通常,网站根目录…

如何评估项目进度的风险和不确定性

项目进度的风险和不确定性是项目管理中的关键方面,其评估可以通过多种方法和工具来进行。关键步骤包括识别潜在风险因素、进行定性和定量的风险分析、制定应对策略,以及定期监控和调整风险管理计划。其中,制定应对策略是风险评估中至关重要的一步,它涉及根据风险分析的结果…