Linux 上 Docker部署 .NET 8 项目详细教程

80 阅读4分钟

前言

在docker上部署自己的.NET 8 WebAPIi,以腾迅linux云服务为例

docker的学习和具体安装可以访问官网地址:

Docker官方安装教程文档网址:docs.docker.com/engine/inst…

1、安装docker

1.1、查看docker是否已安装

命令:docker -v

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

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

转存失败,建议直接上传图片文件

2、创建webapi项目

2.1、新建解决方案

转存失败,建议直接上传图片文件

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

2.2、选择项目AspNetCoreWebApi,

转存失败,建议直接上传图片文件

右键添加docker支持,

转存失败,建议直接上传图片文件

添加成功会出现Dockerfile【D必须大写】

转存失败,建议直接上传图片文件

内容大致如下:

转存失败,建议直接上传图片文件

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

转存失败,建议直接上传图片文件

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

3、发布项目

3.1、发布上传

转存失败,建议直接上传图片文件

转存失败,建议直接上传图片文件

将public目录下的所有文件上传到linux服务器上,linux上传目录如下:/root/dockerwebapi/AspNetCoreWebApi/publish 转存失败,建议直接上传图片文件

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

touch Dockerfile
vim   Dockerfile

转存失败,建议直接上传图片文件

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 .

转存失败,建议直接上传图片文件

4.2、查看镜像

docker images

转存失败,建议直接上传图片文件 镜像创建成功

5、运行镜像

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

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

docker ps

img

5.2、地址访问

转存失败,建议直接上传图片文件 转存失败,建议直接上传图片文件

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

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!