ASP.NET Core 2.1 使用Docker运行

原文:ASP.NET Core 2.1 使用Docker运行

重要提示,本文为 ASP.NET Core 2.1 如果你是 2.2 那么请将文中的镜像换为 microsoft/dotnet:2.2.0-aspnetcore-runtime 即可,其他操作一样

1.新建一个 ASP.NET Core 2.1 项目

然后运行一下项目,确保我们刚刚建立的项目可以正常运行。

2.编写 Dockerfile

新建一个文本文件,命名为 Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "AspNetCore.Docker.dll"]

这里我们需要用到官方的镜像:microsoft/dotnet:2.1-aspnetcore-runtime

如果要尝试更小的镜像,可以试试 microsoft/dotnet:2.1-aspnetcore-runtime-alpine ,这镜像使用了alpine 一款精简版极小的linux,但是随之而来的就是阉割了一些功能,实际使用的时候需要测试,比如国际化支持,它默认在这个镜像里面没有开启,需要配置环境变量来开启。

需要设置Dockerfile的如下属性,保证其能复制到发布目录:

3.构建Docker镜像

我们将镜像命名为 :aspnetcoredocker

进入到发布文件目录,执行命令便可打包镜像:

docker build -t aspnetcoredocker .

我们可以编写 发布+构建 的脚本。

Windows:

文件名:build.bat

@echo off

echo "Windows Docker build"

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo "publish success"

docker build -t aspnetcoredocker .

文件名:Linux:

build.sh

#!/bin/bash

echo Linux Docker build

cd ../AspNetCore.Docker

dotnet publish -c Release -o ../publish

cd ../publish

echo publish success

docker build -t aspnetcoredocker .

文件夹结构如下图:

执行构建:

./build.sh

构建成功后可以通过 docker images 命令查询到我们构建的镜像:

若在linux下执行sh脚本时,遇到错误“-bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory“,请通过vim/vi编辑sh脚本,按:建,输入 set ff=unix,然后回车、wq保存即可

4.运行镜像

通过命令运行

docker run --name=aspnetcoredocker -p 7777:80 -d  aspnetcoredocker

--name:指定容器名称

-p:指定容器端口

-d:指定容器 后台运行

出现一长串字符串,便是表示运行成功:

我们也可以通过 docker ps 命令,查询我们正在运行的容器:

我们还可以通过 docker logs 来查看启动日志:

5.验证访问

我们可以通过 curl命令来直接访问我们容器启动的asp.net core 网站:

或者直接通过浏览器访问:

至此,我们通过Docker运行asp.net core 2.1应用程序就结束了。

6.资料

本文所用代码:https://github.com/stulzq/BlogDemos/tree/master/AspNetCore.Docker

原文地址:https://www.cnblogs.com/lonelyxmas/p/10336540.html

时间: 2024-08-29 18:25:43

ASP.NET Core 2.1 使用Docker运行的相关文章

Gitlab CI 自动部署 asp.net core web api 到Docker容器

为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成.监控报警.以及扩容和高可用性的问题.是学习和探索的过程分享给大家,也欢迎同行的人交流. 先来一个三步曲,我们将完成通过GitLab CI 自动部署 net core web api 到Docker 容器的一个示例.这是第一步,通过此文您将了解如何将net core web api 运行在Docker

Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)

1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://XXXX.mirror.aliyuncs.com"] }

深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的

前言 几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的.当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后用我自己理解的 MVC 知识,写了一篇 深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的 ,写完更加加深了我对 ASP.NET MVC 的理解.今天 ASP.NET Core 已经更新到 3.0 Preview 4 了(今天是:2019-04

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的下载安装等操作,参考文章中已经介绍的

在Asp.Net Core MVC 3.0 视图运行时编译

在正常情况下,视图在生成的时候就会变为 xxx.Views.dll,在开发的时候,这样很不方便,因为很多的时候,我们只是修改一个样式,调整一些JavaScript代码,这个时候要把项目调试暂停下来,生成之后在看页面效果. 先通过nuget 包控制台安装: Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.0.0 然后在Startup.cs文件,在ConfigureServices函数中加入:

asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加user数据库,添加tbusers表 2.创建asp.net core webapi 应用程序 参考Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行,地址 http://www.cnblogs.com/heyangyi/p/9323407.htm

Ubuntu-Docker[1]安装Docker,通过Docker部署net core代码,需要结合[.NET Core 18]发布、ASP.NET Core Docker部署

1)通过系统自带包安装 通过自带包安装,可能Docker版本较旧 $ sudo apt-get update Reading package lists... Done $ sudo apt-get install -y docker.io {{{-y表示同意.没有-y也可执行,系统会问是否安装,输入y回车即可 apt-get -y install这个指令则是跳过系统提示,直接安装.}}} Adding group `docker' (GID 121) ... Done. docker star

asp.net core结合docker实现自动化获取源码、部署、更新

之前入坑dotnet core,由于一开始就遇到在windows上编译发布的web无法直接放到centos上执行.之后便直接研究docker,实现在容器中编译发布.然后就越玩越大,后来利用git的hooks实现自动实现git源码一收到push就自动化获取新代码并编译发布.最后为了方便复用,直接做成统一配置,因此不需要再次编写复杂的脚本配置.只需要打开配置文件,配置几项值,运行一个脚本就ok. 目前有两个版本,原始版本包括git项目的自动克隆.v1版本则把git的克隆抽了出来需要人工克隆一次.具体

Docker &amp; ASP.NET Core (5):Docker Compose

原文:Docker & ASP.NET Core (5):Docker Compose 第一篇:把代码连接到容器 第二篇:定制Docker镜像 第三篇:发布镜像 第四篇:容器间的连接 Docker Compose简介 Compose是一个用来定义和运行多容器Docker应用的工具.使用Compose的时候,你可以使用一个YAML文件来配置你应用的服务.然后根据配置,使用一个命令即可创建并运行所有的服务. 使用Compose的时候通常分三步: 使用Dockerfile定义你的环境 在docker-