.NET 5 部署在docker上运行

1、创建站点

创建一个ASP.NET Core Web应用程序,选中启用Docker支持。自动帮我们创建一个Dockerfile文件。

2、编写Dockerfile文件

dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。

dockerfile主题内容一般分为4部分

  1. 基础镜像信息

  2. 维护者信息使用label指令

  3. 镜像操作指令

  4. 容器启动时执行指令

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat#FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
#WORKDIR /app
#EXPOSE 80
#EXPOSE 443
#
#FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
#WORKDIR /src
#COPY ["AA.Mvc/AA.Mvc.csproj", "AA.Mvc/"]
#RUN dotnet restore "AA.Mvc/AA.Mvc.csproj"
#COPY . .
#WORKDIR "/src/AA.Mvc"
#RUN dotnet build "AA.Mvc.csproj" -c Release -o /app/build
#
#FROM build AS publish
#RUN dotnet publish "AA.Mvc.csproj" -c Release -o /app/publish
#
#FROM base AS final
#WORKDIR /app
#COPY --from=publish /app/publish .
#ENTRYPOINT ["dotnet", "AA.Mvc.dll"]# 父镜像
#FROM microsoft/aspnetcore:5.0
#FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS baseWORKDIR /appFROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
## 设置工作目录
#WORKDIR /app
#
## 复制发布文件到/app下
#COPY . /app
#
## 设置端口
#EXPOSE 5005
EXPOSE 80
COPY . .
# 使用AA.Mvc.dll来运行ASP.NET Core项目,注意大小写
#ENTRYPOINT ["dotnet", "AA.Mvc.dll", "--server.urls", "http://*:5005"]
ENTRYPOINT ["dotnet", "AA.Mvc.dll"]

dockerfile文件指令说明:

  • FROM -指定所创建镜像的基础镜像

  • WORKDIR-配置工作目录

  • EXPOSE-声明镜像内服务监听的端口

  • COPY-复制内容到镜像

  • ENTRYPOINT-启动镜像的默认人口命令

3、编译发布web项目

设置dockerfile文件输出复制

发布完成

4、构建镜像,运行容器并浏览

 创建镜像,可以使用命令docker build,如下所示:

docker build -t core-mvc .

这步可能会慢一些,因为需要下载运行环境,请耐心等待

参数分解:

  • -t ---指定镜像名称

  • 命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件

查看镜像列表,输入一下命令

docker images

创建并启动、查看容器

docker run --name netcore-mvc -d -p 50879:80  core-mvc
docker ps -a

 参数说明

  • -d ,表示在后台以守护态(daemonized)形式运行容器

  • -p 外部端口与内部容器端口映射。

  • --name 指定容器的名称。当然可以不指定,默认会为我们创建

这里如果docker run失败后再次运行会提示名称已存在,可以使用以下命令来删除容器

docker rm -f netcore-mvc

最后一个参数 core-mvc 就是我们刚创建的镜像名称,经过以上4个步骤,在浏览器中输入地址http://localhost:50879/查看如图

至此一个完整的项目以手工的方式运行在docker容器中。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python字符串下标越界_Python_字符串

# str1"abcdef" #字符串 str型# int1 1 #整数 int型# float11.3 #浮点数,float型# str2 ABCDEF# #单引号和双引号都可以表示字符串# print(str1,str2)#在某一行按下Ctrl/,就可以进行注释,注释就是程序不执行该行代码,…

爱情三十一课,先信自己

我们每个人一生都在迎接两个问题的考验:其一,我是否值得被爱;其二,我是否可以成功。  如果某人在这两个问题上的自我认识是“值得”和“可以”,无论境遇多遭,都可以获得爱与幸福。如果某人内心里总是觉得…

c语言给坐标求多边形面积,多边形的面积问题

多边形的面积问题设构成多边形的坐标串为(xi,yi)(i1,2,……,n),求此多边形面积A。#include#define N 10float Area(float (*x)[2],int n){float sum0;int i0,j;for(;i{ji1;if(jn)j0;sum(x[j][0]x[i][0])*(x[j][1]-x[i][1]);}sum(1/2)*(fabs(sum));return sum;}main(){int n,i,j…

Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)

我们在日常开发中经常需要使用到私有仓库,比如 dotNET 中的 NuGet、Java 中的 Maven、前端的 npm,还有 Docker 镜像,每一个私有仓库各自管理,维护起来比较麻烦,而 Nexus 可以将其统一起来。本文将介绍 Nexus 的安装以及…

python choice添加下拉框_自定义Django Form中choicefield下拉菜单选取数据库内容实例...

工作中遇到的问题,自定义了一个forms.form表单,某项需要作出下拉菜单,下拉菜单中的选项需要从数据库(objectForm models)中提取.form.py为:class objectForm(forms.Form):pre choicefield(lable "工作")最后的解决办法:1.定义一个函数def get_object(re…

Enum使用

http://www.java-cn.com/club/html/40/n-640.html1、 目的简单认为:满足一些需求2、 定义、使用public enum SexEnum {male(1),female(0); private final int value; private SexEnum(int value){this.value value;}public int getValue(){return this…

众里寻 Bug 千百度,蓦然回首,它却在隔壁老张处……

程序员与 Bug 是一对矛盾的存在,程序员既要在解决 Bug 中获得成就感,同时也讨厌 Bug 本身的存在。“程序不息,Bug 不止”,程序员在与 Bug 的斗争中,也有很多有趣的事情发生,我们整理了一些程序员在调试 Bug…

linux系统中常见的目录,Linux系统中常见的目录名称以及相应内容

LeetCode: Largest Rectangle in Histogram(直方图最大面积)http://blog.csdn.net/abcbc/article/details/8943485 具体的题目描述为: Given n non-negative integers represent ...自己封装的一个无限滚动 mark 待传import url(http://i.cnblogs.…

Blazor WASM 实现人民币大写转换器

点击上方蓝字关注“汪宇杰博客”导语.NET 5 正式发布已经有一段时间了,其中 Blazor 技术是该版本的亮点之一。作为微软技术的被坑者,年少的我曾经以为 SilverLight 能血虐 Flash,Zune 能团灭 iPod,WP 能吊打 iPhone,UW…

vs2010中svn使用教程_VS2010中使用ankhSVN

给大家介绍一些SVN的入门知识!希望对大家的学习起到作用!关于SVN与CVS的相关知识,大家可以自己去google一下。一、准备SVN是一个开源的版本控制系统,它可以记录所有的文件修改版本。CVS也是一个版本控制系统,可是现在大…

金山安全实验室公布中国互联网六大类钓鱼网站

金山安全实验室公布中国互联网六大类钓鱼网站金山安全实验室研究人员对中国大陆钓鱼网站的普遍特征进行分析,发现以下六个领域最容易被钓鱼网站***:1.QQ十年庆典、QQ抽奖、腾讯活动;2.证券、股票分析、黑庄、理财专家等财经领域;3…

c语言用递归法判断回文字符串,递归方式判断一个字符串是否为回文字符串

/** 递归方式判断一个字符串是否为回文字符串*/public class PartitionTest{public static void main(String[] args) {String str "123456654321";System.out.println("srcString "str);System.out.println("srcString is "(isPartition(str)…

npm 安装less插件_IDEA编译less插件LESS CSS Compiler的安装

2.安装Node.js,下载3.打开idea→settings→plugins 安装:“nodejs”插件,并按以下步骤进行配置:4.打开idea→settings→Languages & Frameworks→Node.js and NPM;在打开的面板中点击右侧“”加号按钮添加需要的“less”组件(…

程序员过关斩将--领导说我的类的职责不单一

“为什么类的职责要单一化?“类的职责单一化很容易吗?首先,我要提醒一下看到这篇文章的同学,我认为保证类(一定是类吗?)的单一职责并不容易软件开发过程中,自古就流传着几大规则&…

从概念到案例,机器学习应该掌握的20个知识点

随着科技的发展,计算机对人类的生产活动和社会活动产生了极为重要的影响,同时以强大的生命力飞速发展着。目前计算机正广泛用于社会各个领域,并朝着微型化、网络化、智能化和巨型化的方向前进。说到智能化,大家最先想到的应该就是…

闲来没事写个记事本玩玩!!!

这两天工作压力大,还好今天见着太阳了,这会儿没事写了个记事本,功能单一,适合练手,可能对新手会有所帮助,贴上来看看吧, 说到实现 记事本,我们应该选择什么样的控件呢,Te…

在c语言程序中将数据分为两种,2012年计算机二级C语言考点归纳汇总(一至四章)...

第1章程序设计基本概念考点归纳1.1 C语言的特点C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,其原因是C语言有优于其他语言的一系列特点。下面是C语言的主要特点:(1)语言简洁、紧凑,并且使用方便、灵…

LG将授权webOS给其他电视厂商使用

喜欢就关注我们吧!LG 将向其他公司提供 webOS。根据 LG 发布的公告,其自家电视机搭载的专有系统 webOS 将会授权给其他的外部电视厂商使用。被授权使用 webOS 的电视厂商还会获得来自 LG 的 Magic Motion 遥控器,此外,系统的语音控…

数据之美,堪比好莱坞大片!

看完下面的几张图,你就知道自己有多无知了。堪称是好莱坞大片啊!1城市3D空间通过2D瓦片图层的3D化,能够在经度维度、量级、时间多个维度上真实还原城市3D空间。例子中为模拟的轨迹数据和旧金山食物供应商分布。2GPS轨迹分布以三种不同的方式描…

redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?

在 Linux 中安装了redis 服务,当在客户端通过远程连接的方式连接时,报could not connect错误。错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问。需要通过简单配置&#xff0…