前言

在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序。

Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

Asp.Net Core 发布和部署(Linux + Jexus )

目录

  • Docker 常用命令

  • Docker 安装Asp.Net Core镜像

  • 使用Dockerfile部署

Docker 常用命令

docker info
检查Docker的安装是否正确,如果没有找到此命令,则表示Docker没有正确安装

docker pull busybox
拉取一个预建的镜像

sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")
以后台进程的方式运行hello docker
sample_job命令会隔一秒打印一次Docker,使用Docker logs可以查看输出。如果没有起名字,那这个job会被分配一个id,以后使用命令例如Docker logs查看日志会变得比较麻烦。

docker logs $sample_job
运行Docker logs命令来查看job的当前状态:

docker help
所有Docker命令

docker stop $sample_job
停止名为sample_job的容器

docker restart $sample_job
重新启动该容器

docker stop $sample_job docker rm $sample_job
如果要完全移除容器,需要将该容器停止,然后才能移除

docker commit $sample_job job1
将容器的状态保存为镜像

docker images
令查看所有镜像的列表

下面分享一些我经常使用的一些命令:

移除所有的容器和镜像,用一行命令大扫除:
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)

仅仅想删除所有的容器,你可以运行如下命令:
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)

清除名称为none的镜像,一般都是下载一般失败的残留:

docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
docker images|grep none|awk '{print $3 }'|xargs docker rmi

清除单个镜像:
docker rmi -f <image id>

Docker 安装Asp.Net Core镜像

有关Docker的安装请参考官网:
https://www.docker.com/products/docker

到这里,假设你的Docker已经安装完成,以下环境为 Liunx(Ubuntu 15.02)。

打开 https://hub.docker.com 右上角搜索dotnet,选择第一个搜索结果microsoft/dotnet,点进去如下图:

得到命令了吧,切换到命令行窗口运行以下命令来安装asp.net core 镜像。

sudo docker pull microsoft/dotnet

什么? 没响应,速度慢? 你不会买个高速VPN啊~
什么? 没钱? 你不会找一个国内的Docker镜像站啊~ DaoCloud镜像啊,阿里云Docker镜像啊。。自己动手找啊。。

镜像下载完成之后,输入sudo docker iamges我们检查一下:

至此,准备工作已经全部完成了

使用 Dockerfile 部署

Dockerfile 是什么东西,Dockerfile有什么用,自行百度。

博主直接教你怎么写吧:

总不能一直用5000端口吧,这次我们使用60000端口

1、程序命令行切换到publish文件目录中。
2、sudo touch Dockerfile 名称不要写错了,没有任何后缀名,来新建一个Dockerfile文件。
3、sudo vim Dockerfile 使用Vim来编辑Dockerfile。如果Vim不会用就用gedit吧。
4、输入以下内容:

Dockerfile

#基于 `microsoft/dotnet:1.0.0-core` 来构建我们的镜像FROM microsoft/dotnet:1.0.0-core#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中  COPY . /publish#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹WORKDIR /publish#设置Docker容器对外暴露60000端口EXPOSE 60000#使用`dotnet HelloWebApp.dll`来运行应用程序CMD ["dotnet", "HelloWebApp.dll", "--server.urls", "http://*:60000"]

使用:wq来保存并退出 (gedit无视掉 )。

构建镜像

运行 docker build -t hellowebapp:1.0 . 来构建一个镜像

运行构建的镜像

使用docker run --name hellowebapp -d -p 60000:60000 hellowebapp:1.0

打开浏览器测试一下:

下一篇怎么在 Linux 为 dotnet 创建守护进程(Linux 部署必备知识),已经写好了,明天发。

相关文章:

  • ASP.NET Core 1.0 入门——了解一个空项目

  • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

  • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介

  • 云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)

  • 使用VS Code开发ASP.NET Core 应用程序

  • dotnet run是如何启动asp.net core站点的

  • ASP.NET Core提供模块化Middleware组件

  • “dotnet restore"和"dotnet run"都做了些什么?

  • 探秘 dotnet run 如何运行 .NET Core 应用程序

  • .NET Portability Analyzer 已开源

  • ASP.NET Core的配置(1):读取配置信息

  • ASP.NET Core的配置(2):配置模型详解

  • .NET Core 1.0 RC2 历险之旅

  • 使用VS Code开发 调试.NET Core 应用程序

  • 让我们Core在一起:ASP.NET Core & .NET Core

  • .NET Core VS Code 环境配置

  • 官方博客明确了 .NET Core RC2/RTM 时间表

  • .NET Core全新的配置管理[共9篇]

  • 利用记事本创建一个ASP.NET Core RC2 MVC应用

  • 微软.NET 正式劈腿成功,横跨所有平台

  • .NET Core 1.0 CentOS7 尝试

  • 解读发布:.NET Core RC2 and .NET Core SDK Preview 1

  • [.NET Core].NET Core R2安装及示例教程

  • ASP.NET Core 开发-中间件(Middleware)

  • 结合Jexus + Kestrel 部署 asp.net core 生产环境

  • 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

  • ASP.NET Core 中文文档 第一章 入门

  • 用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序

  • 用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API

  • 用 Visual Studio 发布一个 Azure 云 Web 应用程序

  • ASP.NET Core MVC 与 Visual Studio 入门

  • 第二章指南(4.2)添加 Controller

  • DotNet Core 介绍

  • asp.net core 中间件详解及项目实战

  • 教你实践ASP.NET Core Authorization(免看文档教程)

  • asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存

  • asp.net core 中间件详解及项目实战

  • 第二章 指南(4.3)添加 View

  • dotnet core开发体验之开始MVC

  • dotnet core 开发体验之Routing

  • 聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer

  • 简析.NET Core 以及与 .NET Framework的关系

  • .NET Core 使用Dapper 操作MySQL

  • 使用 CommandLineApplication 类创建专业的控制台程序

  • 简析 .NET Core 构成体系

  • .NET Core也可以使用MongoDB了

  • .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布

  • .NET Core:面向未来的开源跨平台开发技术

  • 微软说它深爱着Linux,现在它用行动证明了

  • 移植.NET Core计划,整合各平台变得更简单了!

  • ASP.NET Core 介绍

  • 通过几个Hello World感受.NET Core全新的开发体验

  • ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行

  • .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

  • Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

  • Asp.Net Core 发布和部署(Linux + Jexus )

  • 学习ASP.NET Core,你必须了解无处不在的“依赖注入”

  • .NET Core应用类型(Portable apps & Self-contained apps)

  • .NET Core 1.0发布:微软开源跨平台大布局序幕

  • ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)

  • 在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序

  • ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

  • 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

  • 使用 dotnet watch 开发 ASP.NET Core 应用程序

  • ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-docker.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

ASP.NET Core Docker部署相关推荐

  1. ASP.NET Core WEB部署:Kestrel

    ASP.NET Core WEB部署:Kestrel.IIS.Docker 本文链接:https://blog.csdn.net/sundna/article/details/90242777 本文主 ...

  2. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

    天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMemc ...

  3. RoadFlow Asp.Net Core工作流部署

    RoadFlow Asp.Net Core工作流部署 RoadFlow最新版本采用ASP.NET CORE2.1开发,部署步骤和.NET CORE部署一样,具体可参数ASP.NET CORE的部署方式 ...

  4. Asp.Net Core Docker镜像更新系统从wheezy改为stretch

    之前写过一个在Asp.Net Core里调用System.Drawing.Common绘图的DEMO,部署到Docker里运行,需要更新Asp.Net Core镜像的操作系统. https://www ...

  5. ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成

    没有采用gitlab,因为gitlab比较吃配置.也比较重,用不到那么多功能.采用go语言开发的gogs来代替. 免费HTTPS证书 安装Gogs (一个gitserver,类似于gitlab) 安装 ...

  6. ASP.NET Core Docker Jenkins 零基础持续集成实战

    一.本系列教程说明 源代码管理工具:Gogs 持续集成工具:Jenkins 容器:Docker 二.git管理软件的选择 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用g ...

  7. ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案

    .Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...

  8. 记录ASP.NET CORE 3 部署过程

    环境为:window server 2008 IIS6.1  net core 3 首先时安装net.core 运行时.地址为:https://dotnet.microsoft.com/downloa ...

  9. Asp.Net Core + Docker 搭建

    一.Docker安装 (1)机器准备 本次实验,我是在Win10上,使用Vmware Workstation虚拟机安装的Ubuntu 18.04.l LTS版本进行搭建. (2)安装Docker   ...

最新文章

  1. Theano - 循环
  2. 不喜欢冷漠,喜欢笑容、热情和拥抱
  3. Jquery获取select标签的值、文本方式
  4. 可做fft分析吗_小吃店生意好做吗,小吃业行情分析
  5. C++优先队列priority_queue详解
  6. Spring Security整合JWT,实现单点登录,So Easy~!
  7. 苹果修复已遭在野利用的 iOS 和 macOS 0day
  8. iOS开发之仿照LinkedIn登录界面效果
  9. word邮件合并,批量插入图片,批量修改文件名字
  10. HTML CSS JavaScript学习心得
  11. float a=1.0f 这里的1.0f中的 f 代表什么?有什么意思?
  12. Spring Boot入门到精通(超详细)
  13. 总结清楚浮动的几种方法
  14. 免费下载英文文献,这些网站你不能不知道!
  15. 亚利桑那州立大学计算机专业,美国大学亚利桑那州立大学计算机科学专业课程设置...
  16. 【数据结构】连通图、连通分量与强连通图、强连通分量—区别在于强,强强在哪里?
  17. 第六章-过程封装(函数)代码实例(C++蓝豹子)
  18. 孕妇吃米饭好吗?盘点适合孕妇吃的美食
  19. LA 4513 Stammering Aliens
  20. BCGControlBar使用说明

热门文章

  1. nginx file not found 错误处理小记
  2. MVP on Board 没用小技巧
  3. 中国唯一一位女性 Apache Member 潘娟:我们还是要走出自己与众不同的 My Way
  4. c#:细说时区、DateTime和DateTimeOffset在国际化中的应用
  5. 大厂面试都爱问这4个问题,.NET开发必看!
  6. ASP.NET Core Authentication and Authorization
  7. 2020.NET开发者大会大会线上同步直播,以及参会秘籍
  8. WordPress 已过时?创始人与新架构拥护者开战
  9. 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇)
  10. Azure App Service 如何在第一时间用上最新版 .NET Core