聊聊.NET 5 部署在Docker上运行

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

[[384381]]

本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众号。

1、创建站点

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

2、编写Dockerfile文件

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

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

基础镜像信息

维护者信息使用label指令

镜像操作指令

容器启动时执行指令

#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 /app

FROM 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容器中。

 

责任编辑:武晓燕 来源: UP技术控
相关推荐

2020-07-20 18:30:44

Fedora 32DockerLinux

2022-07-26 07:14:52

Docker宿主命令

2014-12-17 15:18:27

LinuxMonoWindows

2015-02-26 09:37:09

ASP.NET 5ASP.NET

2009-07-29 16:22:34

APACHE上运行AS

2024-05-10 07:31:32

IIS应用程序.NET Core

2016-07-29 15:49:58

DockerKubernetesMongoDB

2015-10-14 10:02:33

ClojureScri Android

2023-01-04 07:46:10

单选按钮双击效果

2011-03-25 11:21:36

NagiosLinux

2010-05-21 15:23:25

ipadSAP

2010-10-09 08:58:03

NginxRuby on Rai

2019-04-23 09:48:21

KubernetesPostgreSQL

2017-05-18 10:44:49

MACDockerOracle

2021-02-07 09:05:56

微服务结构云原生

2021-08-09 10:31:33

自定义授权响应

2015-02-06 11:04:10

DockerAWS移动应用开发测试

2017-02-16 10:15:43

Windows7docker变量

2023-01-26 11:56:31

Kubernete虚拟机k3s

2021-10-03 14:47:26

Fedora CoreGitHub Acti运行器
点赞
收藏

51CTO技术栈公众号