Docker 离线安装 .net Core 6.0 环境部署

发布于:2023-01-15 ⋅ 阅读:(1087) ⋅ 点赞:(0)

一、背景

最近参与开发一个烟草行业的项目, 由于项目的特殊性, 所有的服务器都只能访问内网, 以往使用 “ docker pull images ” 下载镜像的方式不可行了。只能另寻办法。 经过一番的查找, 发现 docker 提供了镜像“转换保存”的功能, 这么一来,就完美解决了 docker 无法联网下载的问题。

二、离线环境部署

其实联网部署离线部署的步骤大同小异, 唯一的区别就是,离线安装没办法通过“ docker pull 镜像” 的方式获取到 .net core 6.0 运行所需要的环境(ASP.NET Core  6.0 运行时),所以我们只要解决了镜像问题, 那么离线部署的问题就解决了。而 docker 官方提供了Save load 来实现镜像的导出和导入。 官方文档地址:docker save | Docker Documentation ,这里就不过多介绍了。

  1. 使用可以上网的电脑(服务器), 并且电脑(服务器)安装了Docker 环境
  2. 执行 “ docker pull mcr.microsoft.com/dotnet/aspnet:6.0” 命令下载镜像
  3. 执行 “docker save mcr.microsoft.com/dotnet/aspnet:6.0 > aspnet.tar ” 命令将镜像导出为静态文件
  4. 将静态文件复制/拷贝到内网服务器
  5. 登录到内网服务器上, 在内网服务器上执行 “docker load < aspnet.tar ” 命令将镜像加载到 docker 中。

通过上述的操作,.net core 6.0 的运行环境就已经安装完成了。下面就来讲 .net core 的程序部署起来。

三、发布

1、发布的话, 需要在项目的根目录创建一个 “Dockerfile”  的文件,文件内容如下,(注意:其中“NTI.IoT.Edge.PSS.Web.Entry.dll” 要改成你自己的项目名称

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 5000
EXPOSE 5001
COPY . .
ENTRYPOINT ["dotnet", "NTI.IoT.Edge.PSS.Web.Entry.dll"]

2、将发布的文件拷贝到服务器上,进入项目的文件夹

3、生成网站镜像

docker build  -t  nti.iot.edge.pss.web.entry:1.0 .

 

 4、然后启动镜像即可就发布成功了。

docker run --name=nti.iot.edge.pss.web.entry -d -p 5000:80 nti.iot.edge.pss.web.entry:1.0

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到