.net core 发布到docker
2024-08-25 15:16:31
1. 安装docker-desktop,windows环境安装包
官方网站:https://www.docker.com/
2.注册登陆Docker账号
安装成功后,在官方网站注册一个账号,使用账号登陆docker,然后windows的Hyper-V虚拟机就有一个新的虚拟机了
注意:登陆Docker不能使用邮箱作为账号,否则使用Docker的编译发布镜像的时候,会出现无法验证的错误
Get https://registry-1.docker.io/v2/microsoft/dotnet/manifests/latest: unauthorized: incorrect username or password
3.创建core的项目,确保能在本地运行。测试项目绑定本地的5000端口
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000")
.UseStartup<Startup>()
.Build();
4.使用vs发布生成代码
5.发布成功后,publish文件夹添加Dockerfile文件,文件内容如下
# 基于microsoft/dotnet:latest构建Docker Image
FROM microsoft/dotnet:latest # 进入docker中的/usr/local/src目录
RUN cd /usr/local/src # 创建DockerWebAPI目录
RUN mkdir DockerTest # 设置工作路径
WORKDIR /usr/local/src/DockerTest # 将当前文件夹下的所有文件全部复制到工作目录
COPY *.* ./ # 向外界暴露5000端口
EXPOSE # 执行dotnet DockerWebAPI.dll命令
CMD ["dotnet", "DockerTest.dll"]
microsoft/dotnet:latest 是最新的包,打包后的镜像文件可能有1G以上 microsoft/dotnet:2.1-aspnetcore-runtime 2.1的运行时包,比较小
其他.net core 镜像环境可以自己去找
6.发布到docker,红字部分为docker镜像名称
docker build -t dotnet/dockertest .
7.启动镜像
docker run -it -p : dotnet/dockertest
成功后如下图所示
-----------------------------------------
附加:
错误1:
启动镜像时,*.deps.json缺少
解决办法:
项目文件csproj,添加配置
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
修改配置后从步骤4开始重新发布!
最新文章
- 2016弱校联盟十一专场10.5---As Easy As Possible(倍增)
- LoadRunner 脚本学习 -- 指针基础
- 【springmvc】之常用的注解
- openstack 正常流量
- java学习笔记(10) —— ActionContext、ServletActionContext、ServletRequestAware用法
- Acdream a + b
- MapReduce调度与执行原理之任务调度
- 新秀翻译(两)——使用Java通用配置模板方法模式
- js操作select和option
- CodeForces 721B
- Nodejs express 获取url参数,post参数的三种方式
- 使用数据库乐观锁解决高并发秒杀问题,以及如何模拟高并发的场景,CyclicBarrier和CountDownLatch类的用法
- 02_Nginx基本配置与参数说明 + 辅助命令
- SQL操作符、通配符等
- 转:浅谈SimpleDateFormat的线程安全问题
- 解决使用微软模拟器VS Emulator for Android在VS2017 Xamarin开发中不能调试程序的问题。
- Spring Boot + Spring Cloud 实现权限管理系统 权限控制(Shiro 注解)
- dockerfile介绍
- 如何调试触发器-MSSQL (转帖)
- sleep与信号唤醒的问题 &; 内核对信号的处理方式 &; udelay