ubuntu+.net6+docker 应用部署教程

先期工作

1、本地首先安装 Docker Desktop

2、本地装linux in windows

3、生成镜像

后期工作

1、云服务器部署

生成镜像方法

1、生成Dockerfile配置文件

开发工具visual studio 2022

如果项目已经存在,可以选中项目,右键点击->选择添加Docker支持。

ubuntu+.net6+docker 应用部署教程_第1张图片

继续选linux

ubuntu+.net6+docker 应用部署教程_第2张图片

项目支持docker后,会在项目下生成一个Dockerfile文件(用来构建Docker镜像的构建文件)

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
#使用“小型”仅运行时基础映像开始一个阶段,将其称为“基础”,以供参考
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
# 在映像中创建 /app 目录 。
EXPOSE 80
# 公开端口 8070 。


#使用“大型”映像开始用于生成/发布的新阶段。将其称为“生成” ,以供参考。
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
#在映像中创建目录 /src 。
WORKDIR /src

#复制引用的 .csproj 项目文件,以便之后能够还原包 。
COPY ["WebAdmin/WebAdmin.csproj", "WebAdmin/"]
COPY ["APPService/ServiceWeb.csproj", "APPService/"]
COPY ["BaseClass/Utils_Base.csproj", "BaseClass/"]
COPY ["IotDeviceToolHepler/IotDeviceToolHepler.csproj", "IotDeviceToolHepler/"]
COPY ["Models/Models.csproj", "Models/"]
COPY ["DBUtility/Utils_ORM.csproj", "DBUtility/"]
COPY ["Utils_Redis/Utils_Cache.csproj", "Utils_Redis/"]
#还原项目和引用项目的包 。
RUN dotnet restore "WebAdmin/WebAdmin.csproj"
COPY . .
#将解决方案的所有目录树(.dockerignore 文件中包含的文件/目录除外)复制到映像中的 /src/项目 目录 。
WORKDIR "/src/WebAdmin"
#生成项目(和其他项目依赖项)并输出到映像中的 /app/build 目录 。
RUN dotnet build "WebAdmin.csproj" -c Release -o /app/build


#开始一个从“生成”继续的新阶段。将它称为“发布” 以进行引用。
FROM build AS publish
# 发布项目(和依赖项)并输出到映像中的 /app/publish 目录 。
RUN dotnet publish "WebAdmin.csproj" -c Release -o /app/publish /p:UseAppHost=false

# 开始一个从“基础”继续的新阶段,并将其称为“最终”
FROM base AS final
#将当前目录更改为 /app
WORKDIR /app
#将 /app 目录从阶段“发布”复制到当前目录
COPY --from=publish /app/publish .
#定义启动容器时要运行的命令
ENTRYPOINT ["dotnet", "WebAdmin.dll"]
#如果想传参,可以ENTRYPOINT ["dotnet", "WebAdmin.dll","product"]

2、生成镜像

打开window的cmd执行指令

docker build -f .\WebAdmin\Dockerfile -t webadmin .

如图,生成镜像成功

ubuntu+.net6+docker 应用部署教程_第3张图片

查看镜像

3、运行镜像

创建容器并运行镜像看下是否正常

docker run -p 8011(映射外网端口):80(应用端口) webadmin

 如果想传参可以

docker run -p 8011(映射外网端口):80(应用端口) webadmin test

Program.cs 文件中接收参数args,用于多环境部署

ubuntu+.net6+docker 应用部署教程_第4张图片 查下ip:8071是否可以访问,正常可以访问即表示成功了

查看容器

docker ps

 如图表示正常

4、我们把镜像下载到硬盘,以便上传到云服务器上部署

cmd中执行指令

sudo docker save -o webadmin.tar webadmin

如:

将生成一个tar文件到F:\物联网\IotCsharp>目录中 

把 tar文件上传到云服务器,并运行指令导入docker镜像,并运行到容器即可

导入镜像
sudo docker load --input /usr/docker/webadmin.tar 

你可能感兴趣的:(物联应用相关,ubuntu,服务器,c#)