.net core——Docker化开发和部署
本篇文章是使用Vs2017生成的Dockerfile进行部署的。
VS2017生成Docker部署项目
这里采用VS2017自动生成Dockerfile,建立项目时选择启用Docker支持,可选择linux和windows,windows需要安装docker for windows,这里不再描述。本篇文章主要以CentOS为部署目标。

Dockerfile内容
文件及注释内容如下:
Docker安装请参考 官方文档
# 选择.net core 运行时容器为基容器, as命令需要高版本的Docker支持。
# 这里的坑是Centos自带的 Docker版本不支持 as命令,因此需要升级
# 安装步骤请参考上面的官方文档
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["SSApiService/SSApiService.csproj", "SSApiService/"]
RUN dotnet restore "SSApiService/SSApiService.csproj"
COPY . .
WORKDIR "/src/SSApiService"
RUN dotnet build "SSApiService.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "SSApiService.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SSApiService.dll"]
在开发服务器安装
如果有Jekins服务器,可以参考类似命令。
这里忽略了从git服务拉取代码的步骤。
按照如下顺序执行docker命令
docker stop wmsapi
docker rm wmsapi
docker rmi mark/api
docker build -f /data/dotnet/SSApiService/SSApiService/Dockerfile -t mark/api .
docker run -d -p 5000:80 --name wmsapi mark/api
docker images
===================执行结果==============================================================
REPOSITORY TAG IMAGE ID CREATED SIZE
mark/api latest 7d7b13f4e34b 24 minutes ago 257MB
<none> <none> 5b6bff345326 24 minutes ago 1.74GB
microsoft/dotnet 2.1-sdk e87e5f0285fc 13 days ago 1.73GB
microsoft/dotnet 2.1-aspnetcore-runtime ea22d9662fa7 13 days ago 253MB
microsoft/dotnet 2.1-aspnetcore-runtime ea22d9662fa7 13 days ago 253MB
docker ps
===================执行结果==============================================================
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
247e2596a83e mark/api "dotnet SSApiService…" 18 minutes ago Up 18 minutes 0.0.0.0:5000->80/tcp wmsapi
结论
VS2017为在dokcer容器内的开发和部署提供了非常便利的帮助。几乎傻瓜式的。
嗯!点赞宇宙第一编译器!
在此我向大家推荐一个微服务架构学习交流群。交流学习QQ群号:864759589 里面会分享一些资深架构师录制的视频录像:高并发、高性能、分布式、微服务架构的原理,分布式架构等这些成为架构师必备的知识体系。

引用链接
.net core——Docker化开发和部署的更多相关文章
- .NET Core容器化开发系列(零)——计划
.NET Core相当完善的跨平台特性以及其轻量化的底层接口为我们能顺畅进行微服务开发提供了非常棒的基础. 作为支撑微服务最常见的基础技术--容器化将是本系列的核心内容. 接下来我计划用一个月左右的时 ...
- .NET Core容器化开发系列(一)——Docker里面跑个.NET Core
前言 博客园中已经有很多如何在Docker里面运行ASP.NET Core的介绍了.本篇主要介绍一些细节,帮助初学的朋友更加深入地理解如何在Docker中运行ASP.NET Core. 安装Docke ...
- 使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型
本文将使用ML.NET创建机器学习分类模型,通过ASP.NET Core Web API公开它,将其打包到Docker容器中,并通过Azure Container Instances将其部署到云中. ...
- [Nancy On .Net Core Docker] 轻量级的web框架
.net core现在已经有了大的发展,虽然笔者现在已经从事python开发,但是一直在关注.net的发展,在逛博客园的时候,发现有大家都会提到Nancy这个框架,在简单的使用之后,发现竟然是如此的简 ...
- Net Core Docker
Net Core Docker轻量级的web框架 .net core现在已经有了大的发展,虽然笔者现在已经从事python开发,但是一直在关注.net的发展,在逛博客园的时候,发现有大家都会提到N ...
- Python服务Dokcer化并k8s部署实例
这篇文章记录了我试验将一个基于python的服务docker化并k8s部署的过程. 服务介绍Docker化设计业务代码改造创建docker镜像K8S部署设计yaml文件运行服务介绍这是一个用 pyth ...
- 测试环境docker化—容器集群编排实践
本文来自网易云社区 作者:孙婷婷 背景 在前文<测试环境docker化-基于ndp部署模式的docker基础镜像制作>中已经详述了docker镜像制作及模块部署的过程,按照上述做法已可以搭 ...
- 从头认识一下docker-附带asp.net core程序的docker化部署
从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...
- ASP.NET Core使用Docker进行容器化托管和部署
一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管,本课程并不是完完全全的零基础Docker入门教学,课程知识点难免有没覆盖全面 ...
随机推荐
- 用jquery获取单选按钮选中的内容 和 获取select下拉列表选中的值
1.<label><input name='reason' type='radio' value='您的评论内容涉嫌谣言' />您的评论内容涉嫌谣言</label> ...
- 11. Spring Boot JPA 连接数据库
转自:https://blog.csdn.net/catoop/article/details/50508397
- Ubuntu 14.04安装teamviewer 远程桌面
teamviewer 真是一款非常强大的远程登录软件,可以跨Windows和Ubuntu远程登录,但是在64bit的Ubuntu下安装时,按照官方安装方法总是会遇到问题,下面说一下如何安装: 安装i3 ...
- 策略模式 VS 桥梁模式
这对冤家终于碰头了,策略模式与桥梁模式是如此相似,简直就是孪生兄弟,要把它们两个分开需要花费大量智力,我们来看看两者的通用类图,如图33-1所示. 图33-1 策略模式(左)和桥梁模式(右)通用类图 ...
- 如何使用 PyCharm 将代码上传到GitHub上(详细图解)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶说明 测试条件:需要有GitHub账号以及在本地安装了Git工具,无论是Linux环境还是Windows都是一样的 如果还没有 ...
- [D3] Better Code Organization with selection.call() with D3 v4
Most of D3’s native selection APIs also return the selection (or a new selection), to enable multipl ...
- log4j 2.x 版本的 properties 配置
#用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出status = debugdest = errname = PropertiesConf ...
- [Maven实战](6)仓库(本地仓库,远程仓库,镜像)
1. 简单介绍 maven能够在某个位置统一存储全部maven项目共享的构件,这个统一的位置就是仓库.实际的Maven项目将不会各自存储其依赖文件,它们仅仅须要声明这些依赖的坐标,在须要的时候(比如. ...
- Java性能优化技巧集锦
一.通用篇 "通用篇"讨论的问题适合于大多数Java应用. 1.1 不用new关键词创建类的实例 用new关键词创建类的实例时,构造函数链中的全部构造函数都会被自己主动调用.但假设 ...
- stm32的timer