如何将dotnet core webapi发布到docker中

今天想起来撸一下docker,中途还是遇到些问题,但是这些问题都是由于路径什么的导致不正确,在这儿还是记录下操作过程,今天是基于windows来操作docker,先把windows搞定,后面再去Linux上搞docker。

1、前提条件

  • Win10系统,不能是家庭版,并且需要开启Hyper-V
  • 官网下载并安装:docker desktop for window
  • 注册一个docker hub的账号,用于后面可以把镜像推送到在线仓库中
  • 本地dotnet core开发环境

2、安装docker

  • 下载docker desktop后直接根据提示进行安装
  • 安装完成之后,打开CMD命令框,输入docker --version 能看到版本号就说明安装成功了
  • 登录dockerhub账号:docker login回车根据提示输入你的账号密码即可
  • cmd输入:docker run hello-world 拉取镜像并且运行一个容器
  • cmd输入:docker image ls 查看镜像列表
  • cmd输入:docker container ls 查看运行的容器列表
  • CMD输入:**docker --help** 可以查看docker命令的帮助信息

3、创建WebApi,编译发布到指定目录

4、在WebApi发布目录中建立DockerFile文件,添加如下内容

# 基于microsoft/dotnet:latest构建Docker Image
# FROM microsoft/dotnet:latest
# FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 # 将publish下的所有文件拷贝到工作目录
COPY *.* ./ # 端口
EXPOSE 5000 # 启动webapi
CMD ["dotnet", "WebApi.dll"]

5、CMD进入WebApi发布目录,构建WebApi镜像,并启动容器

  • CMD输入命令:docker image build -t yazid2020/test_webapi:1.0.1 .
  • 启动容器:docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
  • 然后去访问接口,能看到已经能得到响应了

6、将镜像推送到docker hub中

  • 在docker hub中先建立一个Repository镜像仓储【yazid2020/test_webapi】
  • 将镜像推送到仓储:docker push yazid2020/test_webapi:1.0.1,这里可能会提示未登录,使用docker login登录即可
  • 到这里就完成了将core webapi发布到docker中,并且将镜像推送到在线仓储,以后再次使用这个镜像时,直接拉取运行即可
    docker pull yazid2020/test_webapi:1.0.1
docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
# -it:表示需要提供一个模拟的shell环境
# -p 8089:5000:表示将DockerContainer的5000端口映射到主机环境的8089端口 不完善,或者还可以改进的地方可以给我留言,感谢!

如何将dotnet core webapi发布到docker中…的更多相关文章

  1. dotnet core webapi 发布部署到docker的步骤

    1. 创建web api项目,编译并测试成功 2. 在项目的根目录添加Dockerfile文件,注意:Dockerfile文件名区分大小写 文件内容如下 # 基于microsoft/dotnet:la ...

  2. dotnet core webapi +vue 搭建前后端完全分离web架构

    架构 服务端采用 dotnet core  webapi 前端采用: Vue + router +elementUI+axios 问题 使用前后端完全分离的架构,首先遇到的问题肯定是跨域访问.前后端可 ...

  3. Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行

    1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生 ...

  4. dotnet core webapi +vue 搭建前后端完全分离web架构(一)

    架构 服务端采用 dotnet core  webapi 前端采用: Vue + router +elementUI+axios 问题 使用前后端完全分离的架构,首先遇到的问题肯定是跨域访问.前后端可 ...

  5. 2017-03-04 dotnet core网站发布到Linux系统中

    今天开始学习dotnet core的开发,距离Visual Stuio 2017正式版的发布,也就是VS20周岁的生日还有三天,在我的电脑上安装的是VS2017 Enterprise RC版, 在VS ...

  6. CYQ.Data 正式支持 DotNET Core 版本发布

    闲话几句: 自从上周开始,IOS人员逝去,就开始接手IOS的代码了. 并开始整理IOS的代码(包括当时一开始设计的开发框架). 在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及 ...

  7. Windows下docker的安装,将ASP.NET Core程序部署在docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...

  8. [尝鲜]妈妈再也不用担心 dotnet core 程序发布了: .NET Core Global Tools

    什么是 .NET Core Global Tools? Global Tools是.NET Core 2.1 中一个初次出现的特性.Global Tools提供了一种方法,让开发人员编写的.NET C ...

  9. .net core webapi发布

    地址:https://www.cnblogs.com/laozhang-is-phi/p/9565227.html#autoid-5-1-0 地址2:https://www.cnblogs.com/f ...

随机推荐

  1. win 7 系统过期处理办法

    超级尴尬,刚装的win7 系统居然过期了.下次再也不装盗版了,吼吼吼 处理方法就是下载oem7F7 软件安装,不用再怎么操作就好了. 就是这么简单,并不用像网上那样找什么激活码.

  2. ML Lecture 0-1: Introduction of Machine Learning

    本博客是针对李宏毅教授在Youtube上上传的课程视频<ML Lecture 0-1: Introduction of Machine Learning>的学习笔记.在Github上也po ...

  3. 知识图谱里的知识表示:RDF

    大部分知识图谱使用RDF描述世界上的各种资源,并以三元组的形式保存到知识库中.RDF( Resource Description Framework, 资源描述框架)是一种资源描述语言,它受到元数据标 ...

  4. go server框架学习之路 - 写一个自己的go框架

    go server框架学习之路 - 写一个自己的go框架 用简单的代码实现一个go框架 代码地址: https://github.com/cw731/gcw 1 创建一个简单的框架 代码 packag ...

  5. [POJ1835]宇航员<模拟>

    链接:http://poj.org/problem?id=1835 题干太长我就不放描述了. 一道大模拟 看着就脑壳疼. 难点可能在于方向的确认上 要明确当前的头朝向和脸朝向,才能进行处理 一个小小坑 ...

  6. C++ 简单信息的表示和基本运算

    一.算术运算和自增自减运算 二.关系运算 三.逻辑运算 四.位运算 五.特殊运算符 六.混合运算中的类型转换

  7. 【纯净镜像】原版Windows7集成USB3.0+NVME补丁+UEFI引导旗舰版下载

    系统简述: 1. 基于MSDN原版Windows7 Ultimate With SP1系统制作,无任何插件和垃圾软件. 2. 系统集成IE11浏览器,装完系统后默认浏览器就是IE11. 3.系统注入了 ...

  8. Python3安装Crypto加密包

    Python3安装Crypto加密包 下载链接 加密包地址 步骤 下载加密包,解压加密包到Python安装目录下Lib\site-packages目录中,尝试在Pycharm中导入 from Cryp ...

  9. 监控一姐Grafana你可认识?

    我们先来认识一下格拉法纳——Grafana. 我去,这不就是实时监控大屏吗?记得 N 年前,部门为了做这么个功能,还花重金请专业公司搞过类似的图,现在想想其实也很简单呀. 话又说回来,其实 Grafa ...

  10. (js描述的)数据结构[树结构1.2](12)

    1.先序遍历 2.中序遍历 3.后序遍历 4.递归调用栈详解: 详细见: https://zhuanlan.zhihu.com/p/24291978 5.删除节点操作分析: 5.代码封装 //封装二叉 ...