.NET Core 3.1部署到Docker

前期准备工作

Windows安装虚拟机,可以用自带的Hyper-V安装一个Ubuntu,然后Ubuntu安装Docker,且配置docker仓储加速设置(有梯子,无所谓)

sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y 

docker-ce sudo systemctl daemon-reload 
sudo systemctl restart docker

拉取.net core 3.1镜像

docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1

1、新建.NET Core 3.1 项目

创建一个新项目

 启动Docker支持点击下载Docker for Windowsicon-default.png?t=L9C2https://mp.youkuaiyun.com/mp_download/manage/download/UpDetailed

下载Docker For Windows

 

因为是Windows开发,所以要调试什么的,都会下载一个Docker for Windows,漫长的等待之后,就会下载成功,但是,毕竟是Windows,需要做很多配置。

2、配置Windows Docker环境,调试.NET Core程序
 

1.配置本机WSL 2

可参考微软官方文档:安装 WSL | Microsoft Docs

打开PowerShell,依次运行如下命令:

1、dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

2、dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

下载下载 Linux 内核更新包适用于 x64 计算机的 WSL2 Linux 内核更新包 (windows.net)
3、wsl --set-default-version 2
只用执行到这里就可以,然哈Windows就可以跑Docker了

2.Visual Studio安装vsdbg

有梯子的同学,运行的时候,链接上梯子,F5运行的时候,visual studio会自动下载这个插件,大概1两分钟,没有梯子的同学,只能参考这里了(PS:我也很无奈)Visual Studio 2019使用docker开发(vsdbg的问题) (copyfuture.com)

3、编辑Dockerfile

将原Dockerfile修改为如下样式
 

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

COPY . .

ENTRYPOINT ["dotnet", "UbiWebAPI.dll"] 

修改DockerFile的属性为始终复制


添加一些简单的代码,然后将项目打包到Linux种。

4、部署到Docker

通过Linux远程工具,将项目复制到指定路径下

 1、构建镜像

在当前路径打开命令窗口,执行如下命令

 docker build -t netapi .

参数说明:

  • -t ---指定镜像名称
  • 命令结尾处 ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件

2、创建并启动

查看镜像

docker image ls

 

启动
docker run --name=net1 -d -p 5015:80 netapi

参数说明:

  • -d ,表示在后台以守护态形式运行容器
  • -p 外部端口与内部容器端口映射(5515为外部访问接口,80 为Docker内部接口)。
  • --name 指定容器的名称。当然可以不指定,默认会为我们创建
  • 最后一个参数netapi就是我们刚创建的镜像名称(如果用了标签,应该改为netapi:标签名)

 查看正在运行的镜像
docker ps

可以看到5015已经部署完成,然哈浏览器运行,就可以看到效果:

 

本章案例点击下载icon-default.png?t=L9C2https://download.youkuaiyun.com/download/qq_27337291/33363869

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值