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

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

docker的学习和具体安装可以访问官网地址:
Docker官方安装教程文档网址:https://docs.docker.com/engine/install/centos/

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支持,
image

添加成功会出现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 镜像名称:版本号 .

docker build -t aspnetcorewebapi:1.0.0 .

docker build -t aspnetcorewebapi .

image

4.2 查看镜像

docker images

image
镜像创建成功

5运行镜像

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

【注意:如果有指定版本的项目运行镜像时需要加版本号,这个取决于你生成的镜像,如果不带版本号,默认运行是最新的, docker run -d -p 18080:18080 --name mywebapicontainer aspnetcorewebapi:1.0.0】

运行成功后,输入下列命令。查看运行的进程。方便定位信息,如果有容器id说明成功了

docker ps

5.2 地址访问

image
image

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

posted @   似梦亦非梦  阅读(304)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
点击右上角即可分享
微信分享提示