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开始重新发布!

.net core 发布到docker的更多相关文章

  1. 将.Net Core发布至Docker,并连接 Redis、上传文件到本机、连接sqlserver数据库

    此片文章目标是将 .Net Core 发布到 Docker 上,并且连接到在 Docker上的 Redis .上传文件到本机文件夹和连接 sqlserver 数据库. 创建项目 创建项目就不用说了,我 ...

  2. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问

    在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...

  3. Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)

    实践一下 Asp.Net Core (基于.net core 2.2)部署到Docker 一.准备工作: 1. 使用Virtualbox创建一个Centos系统的虚拟机,并安装docker和vim 2 ...

  4. asp.net core 发布到docker 极简步骤

    1.使用dotnet命令发布项目 2.把发布成功的文件通过scp等工具发布到linux服务器上,在当前目录下新建一个dockerfile 3.使用asp.net core镜像为底包构建一个新的镜像 4 ...

  5. asp.net core发布到docker报Microsoft.ApplicationInsights.AspNetCore miss的错误

    dotnet core 2.1的asp.net core在docker下部署的时候发生下面的错误. Error: An assembly specified in the application de ...

  6. .net core 2.x - docker(for windows)-linux配置及项目+SqlServer发布

    将.net core2.x+sqlserver项目发布到docker.呵呵,操作很自如,如下. 1.罗嗦几句 在跑起来之前浪费了不少时间和精力,起初是将docker for windows的环境转换成 ...

  7. windows下的asp.net core开发及docker下的发布

    参照下面,搭建好开发环境.Docker及配置好Docker加速器 http://www.cnblogs.com/windchen/p/6257846.html 参照下面,将windows共享目录挂载到 ...

  8. 如何将dotnet core webapi发布到docker中…

    如何将dotnet core webapi发布到docker中 今天想起来撸一下docker,中途还是遇到些问题,但是这些问题都是由于路径什么的导致不正确,在这儿还是记录下操作过程,今天是基于wind ...

  9. NET Core+Code First+Docker

    NET Core+Code First+Docker背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这 ...

随机推荐

  1. vue+mock.js+element-ui模拟数据搞定分页

    效果如图: 前提是搭好vue前端框架,npm install mockjs引入mock.js 当前页全部代码如下,其他有关element-ui的引入未提到,仅作参考用 <!-- 用户管理 --& ...

  2. PLSQL Developer中几个功能

    1,登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如果你登录的用户是dba,要展开tables目录,正常情况都需 ...

  3. 【Linux】Linux 在线安装yum

    Linux如何安装软件? 一.RPM安装 优点: 安装过程很简单 缺点: 需要自己寻找和系统版本对应的RPM包 安装过程中需要解决包的依赖问题(例如tftp包) 二.yum在线安装 软件包仓库 仓库的 ...

  4. 龙珠直播之swot

    版本 v 0.3 龙珠直播有品牌优势,依托于苏宁PPTV,有大背景,有体育视频资源可用. 龙珠内容没有特色,没有特别火的亮点,定位于体育,没有免费路线,不能吸引大量活跃用户,女主播方式也没十分特点,解 ...

  5. Python中深浅拷贝 垃圾回收与 super继承(六)

    1 python拷贝 深拷贝,浅拷贝 与引用三者的区别 import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy ...

  6. Python——追加学习笔记(三)

    错误与异常 AttributeError:尝试访问未知的对象属性 eg. >>> class myClass(object): ... pass ... >>> m ...

  7. java之大文件断点续传

    针对某些场景下,面对服务文件大,或者服务端服务器不稳定时使用该模块.功能代码如下: import java.io.File; import java.io.FileOutputStream; impo ...

  8. 关于git的认识与想法

    1.什么是git:                Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/.               Git是一个 ...

  9. CF25E Test

    嘟嘟嘟 因为只有三个字符串,所以就有一个比较暴力的做法:枚举这三个串所有排列,然后对于每一个排列,减去这三个串两两的公共部分的长度,更新答案. 求公共部分自然想到kmp:比如s[1]接在s[0]后面, ...

  10. HDU 1083 Courses 【二分图完备匹配】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1083 Courses Time Limit: 20000/10000 MS (Java/Others)  ...