.net程序在 windows 下部署Docker

当前操作在win11系统下进行部署

 

1、开启Linux的windows功能

 

 

 

 

 

 

2、下载docker 客户端 ,并安装

安装 Docker Desktop for Windows

Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows

点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:

 

 

 

3、docker客户端 依赖 wsl ,linux内核环境

下载Ubuntu,这里我选择的是22.04版本下载,因为下载其他版本时没下成功。

 

设置Ubuntu 设置对应的账号密码

 

 

设置完成后一直下一步就可以

 

 

 

 

4、添加Docker支持

 

4.1 项目右键-->添加 -->Docker支持

4.2 项目下会多出一个 dockerfile 文件

4.3 打开Program.cs配置文件

  添加 builder.WebHost.UseUrls(new[] { "http://*:8023" });  //这里可以加入多个端口,在容器中才可以使用多个端口

  注释 app.UseHttpsRedirection();

  

//指定多个可用端口
builder.WebHost.UseUrls(new[] { "http://*:8023" , "http://*:8024", "http://*:8025"});


//app.UseHttpsRedirection();  //Docker使用需要注释这个

 

 4.4、dockerfile  文件需要增加4句

意思是将SECLEVEL、MinProtocol 版本又2 降为1,必须用4句一起,放在 ENTRYPOINT 之前

RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /usr/lib/ssl/openssl.cnf

 

 

 

 

 * 如果部署在docker上启动不了容器时,尝试将下面注释的开启,再重新部署。

 

 

 

 

 

 

 

 5、生成镜像文件

 

5.1、选择dockerfile 文件右键 --> 生成docker映像

 

 

 5.2、等待生成之后,docker 客户端上面会出现一个镜像文件

 

 

 

 

5.3、将镜像文件放在容器中运行,需要使用命令执行(页面配置的我没搞成功)

 

执行命令:以管理员身份打开 Windows Powershell (兼容的命令Windows Powershell就可以执行,不兼容的命令这里执行不了。配置好Ubuntu 支持所有Docker需要的命令

docker run -d -p 8023:8023 --name myapiDocker esptyldapi:latest

其中: ①  8023:8023  :两个端口 第一个对外,第二个对内,这里指定的端口需要是在Program.cs配置文件指定的端口。

            ②  myapiDocker  :是容器名称,生成名为myapiDocker 的容器

    ③  esptyldapi:latest  : esptyldapi是镜像文件名称 ,latest是镜像文件的Tag

    

 

 

5.4、查看容器列表

 

 

 

 

   运行当前端口

 

 


 

以上是页面操作,使用程序源码直接发布docker

实际使用过程中,客户现场不是直接用源码发布,而是使用发布好的程序进行发布。

以下演示使用发布好的程序发布docker


 

1、Program.cs配置文件跟上一步一样,

 

 以管理员身份打开 Windows Powershell 进行build 镜像文件

定位到发布的文件路径下

使用命令打包镜像文件(Ubuntu 打包镜像文件命令不会。。。。)以下多种方式可以部署镜像:

1:   docker build -t train_api .   //创建镜像 train_api  
2:   docker build -t 项目名称 -f Dockerfile ..

 

执行命令:以管理员身份打开 Ubuntu ,输入以下命令,生成容器,(可以一次性指定多个端口给一个容器,不知道怎么指定多个容器)

docker run -d -p 8023:8023 --name myapiDocker esptyldapi:latest

其中: ①  8023:8023  :两个端口 第一个对外,第二个对内,这里指定的端口需要是在Program.cs配置文件指定的端口。

            ②  myapiDocker  :是容器名称,生成名为myapiDocker 的容器

    ③  esptyldapi:latest  : esptyldapi是镜像文件名称 ,latest是镜像文件的Tag

    

 

 

 

 



Docker 安装 Redis



 

 

 

 

 

posted @ 2022-08-10 17:40  znyzny  阅读(442)  评论(0)    收藏  举报