基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
来源:互联网 发布:众信旅游怎么样 知乎 编辑:程序博客网 时间:2024/04/30 04:24
最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docker-compose.yml)容易让人产生挫败感,想到 Visual Studio 2017 对 Docker 的支持(Docker Support),也许借助它自动生成Docker配置文件、初步体验一下 Docker 部署是一个入门捷径,遂据此想法尝试了一下,感觉不错。
1. 启用 VS2017 的 Docker Support 有 2 种途径:
1.1 在创建 ASP.NET Core 项目时选中“Enable Docker Support”
1.2 或者在已有的项目(注:不是解决方案)中添加 Docker Support
2. 添加 Docker Support 之后,VS2017 会生产 4 个 Docker 配置文件和 1 个 .dcproj 文件。
2.1 Dockfile
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "aspnetcore2-20170530.dll"]
2.2 docker-compose.ci.build.yml
version: '3'services: ci-build: image: microsoft/aspnetcore-build:1.0-1.1 volumes: - .:/src working_dir: /src command: /bin/bash -c "dotnet restore ./aspnetcore2-20170530.sln && dotnet publish ./aspnetcore2-20170530.sln -c Release -o ./obj/Docker/publish"
(注:由于这里时 ASP.NET Core 2.0 的项目,需要把上面的 microsoft/aspnetcore-build:1.0-1.1 改为 microsoft/aspnetcore-build:2.0)
2.3 docker-compose.yml
version: '3'services: aspnetcore2-20170530: image: aspnetcore2-20170530 build:
context: ./aspnetcore2-20170530 dockerfile: Dockerfile
2.4 docker-compose.override.yml
version: '3'services: aspnetcore2-20170530: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "80"
(注:为了可以在容器外部访问站点,需要修改上面 ports 部分配置,这里将 "80" 改为 "8008:80" )
3. 在另外 1 台 Linux 服务器上用 Docker 分别创建 2 个容器发布(dotnet publish)与运行 ASP.NET Core 站点
3.1 在 Linux 机器上签出 ASP.NET Core 项目(已安装 Docker)
3.2 根据 docker-compose.ci.build.yml 配置文件基于 microsoft/aspnetcore-build:2.0 image 创建用于发布 ASP.NET Core 站点的容器
# docker-compose --file docker-compose.ci.build.yml upPulling ci-build (microsoft/aspnetcore-build:2.0)...2.0: Pulling from microsoft/aspnetcore-build...Status: Downloaded newer image for microsoft/aspnetcore-build:2.0...Starting src_ci-build_1 ... Starting src_ci-build_1 ... doneAttaching to src_ci-build_1...src_ci-build_1 exited with code 0
3.3 根据 docker-compose.yml + docker-compose.override.yml 基于 microsoft/aspnetcore:2.0 image(来自Dockerfile的配置)创建用于运行 ASP.NET Core 站点的容器
# docker-compose upStarting src_cnblogs.cache.webapi_1 ... Starting src_cnblogs.cache.webapi_1 ... doneAttaching to src_cnblogs.cache.webapi_1cnblogs.cache.webapi_1 | Hosting environment: Developmentcnblogs.cache.webapi_1 | Content root path: /appcnblogs.cache.webapi_1 | Now listening on: http://[::]:80cnblogs.cache.webapi_1 | Application started. Press Ctrl+C to shut down.
这时通过这台 Linux 服务器的 8008 端口就可以访问运行在 Docker 容器中的 ASP.NET Core 站点。
这样简单快速地体验一下用 Docker 部署 ASP.NET Core 站点的确是一个不错的入门途径。
原文地址:http://www.cnblogs.com/dudu/p/6920764.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
- ASP.NET Core Docker部署
- ASP.NET Core Docker部署
- ASP.NET Core开发-Docker部署运行
- ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
- 基于docker的应用服务部署
- 基于docker的codis3部署
- ASP.NET Core Docker jexus部署-CentOS实践版
- ASP.NET Core Docker jexus部署-CentOS实践版
- ASP.NET Core Docker jexus部署-CentOS实践版
- 基于docker compose的应用服务部署
- 基于Docker的Consul集群部署方案
- 在Linux和Windows的Docker容器中运行ASP.NET Core
- Docker容器环境下ASP.NET Core Web API应用程序的调试
- Docker容器环境下ASP.NET Core Web API应用程序的调试
- scrapy的docker部署
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
- IdentityServer4 SigningCredential(RSA 证书加密)
- Asp.Net Core 发布到IIS
- C# 7.2和8.0路线图
- IdentityServer4 指定角色授权(Authorize(Roles="admin"))
- 微软中国Azure开源开发者(深圳)研讨会
- 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
- ASP.NET Core 指定环境发布(hosting environment)
- asp.net core mvc中如何把二级域名绑定到特定的控制器上
- .net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结(二)
- Docker Machine 简介
- Jexus部署.Net Core项目
- View Components as Tag Helpers,离在线模板编辑又进一步
- .net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结(一)
- 窥探ASP.Net MVC底层原理 实现跨越Session的分布式TempData