专栏首页bluesummerWindows下docker的安装,将ASP.NET Core程序部署在docker中

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

参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: https://docs.docker.com/docker-for-windows/install/

关于配置的细节以及docker的下载安装等操作,参考文章中已经介绍的很详细了。 由于我从来没搞过虚拟机也完全不懂linux语言等...所以还是耽误了半天时间... 由于公司最近在搞服务化,看了些soa相关的资料,都会多多少少提到docker,本人表示很好奇,特此来研究下 所以本文主要附上一个傻瓜教程。以及把配置中需要注意的点说一下。 在阅读本文之前建议先看上面的两篇参考文章 文中没有详细解说的内容均可在参考文章中查到

第一步:安装docker for windows

安装之前需要开启 Hyper-V虚拟机功能,启用方式可以自己搜索,Hyper-V 启动之后,同时也要到bios中启用cpu的虚拟化。 好吧如果你实在懒得查询的话我可以直接给你发一个百度连接:https://jingyan.baidu.com/article/15622f24017461fdfdbea554.html 直到任务管理器中的虚拟化显示开启表示成功

第二步:创建一个webapi程序

当然你可以在vs中或者随便哪里创建一个,然后将程序发布

第三步:创建Dockerfile文件

在webapi的根目录下创建一个文本文档Dockerfile.txt 内容:

# 声明使用的基础镜像 FROM microsoft/dotnet:latest # 将本地dotnet core 应用拷贝到 容器 /app/ 目录下 COPY bin/Debug/netcoreapp2.0/publish/ /app/ # 设置工作目录 WORKDIR /app # 设置导出端口 EXPOSE 5000/tcp # 指定应用入口点 ENTRYPOINT ["dotnet", "/app/NetCore.dll"]

这里解释下部分参数

  • 第1行:代表程序的镜像需要依赖哪个镜像 :latest 表示镜像版本为最新的
  • 第2行:将你的程序文件夹拷贝到 镜像的app目录下
  • 最后一行:NetCore.dll是你的api的dll名称

编辑完成之后记得将文件的后缀名去掉

第三部:创建镜像

进入power shell界面 cd命令切换到webapi的根目录 执行命令: docker build -t myapi . 注意命令中的最后一个点 代表的是命令从你的当前目录下执行 不出意外的话镜像创建完毕

然后继续执行命令运行: docker run -it -p 5000:5000 myapi 这里的5000:5000 代表把容器内的5000端口映射到你主机的5000端口 然后 http://localhost:5000 就可以访问啦!

在VS中启用docker支持

vs2017中提供了对docker的支持,在新建web项目中可以勾选启动docker支持,选项,或者在项目中右键添加docker的支持

同时会生成几个新的文件,

xx.override.yml文件中 将 ports端口改成我们程序的端口 程序中的端口一定要和上面的端口一样:

build.yml文件中,将image 版本改为 2.0

将项目目录下自动生成的Dockerfile文件中的EXPOSE也改为5003端口 然后点击Docker运行docker-compose 漫长的等待。。。 期间会下载需要的包以及执行镜像的创建发布命令等。

成功运行,系统会用一个默认的本机端口映射到docker的5003端口上,api可以访问啦!

关于镜像的下载速度

拉了一个netcore 镜像用了两个小时,这个速度我也是醉了。 解决方法很多,你可以用V**,或者自己从github上将镜像拉下来,或者使用国内的mirror 我用的第三种方式,网站https://www.daocloud.io/mirror#accelerator-doc 再也不用担心下载速度了^-^

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NetCore在Docker中发布及运行 安装构建镜像启动容器DockerfileDocker-ComposeHttp连接请求过多问题

    之前写过一篇关于Docker的文章,回头看了一眼自己差点没有看明白...最近有时间又仔细研究了一遍(主要是生产环境真的要用到了...),顺便从0学习了一下Lin...

    蓝夏
  • 基于NPOI的Excel导入导出类库

    支持多sheet导入导出。导出字段过滤,合并行。特性配置导入验证,非空验证,唯一验证,错误标注等

    蓝夏
  • StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行...

    蓝夏
  • Docker CE for Mac v17.12 正式支持 k8s

    视频:https://www.bilibili.com/video/av17307986/

    康怀帅
  • 尝试docker的overlay网络

    jeremyxu
  • 通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记

    在本地创建一个容器后,可以依据这个容器创建本地镜像,并可把这个镜像推送到Docker hub中,以便在网络上下载使用。

    洗尽了浮华
  • Docker系列学习文章 - 如何安装Docker(三)

    | 导语 前面介绍了关于容器和docker的知识,那么从这篇文章开始,正式进入实操,带大家手把手安装docker环境。

    宝哥@devops运维
  • Linux服务器搭建nvidia-docker环境过程详解

    docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要...

    砸漏
  • 了解下docker的基本操作? 如何在docker安装mysql?

    百度:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟...

    技术从心
  • Docker 详细部署不香吗?

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可...

    Leetcode名企之路

扫码关注云+社区

领取腾讯云代金券