Docker打包Net8.0镜像

news/2024/9/27 11:13:21

Docker 常用命令

Docker 是一种用于构建、打包和运行应用程序的容器化工具,以下是一些常用的 Docker 命令及其说明:

1. Docker 基础命令

docker version # 查看 Docker 的版本信息
docker info # 查看 Docker 系统信息
docker build -t <image_name> . #构建镜像
docker pull nginx  # 从 Docker Hub 下载nginx镜像
docker images #列出本地的镜像
docker run -d nginx # 以后台模式运行 nginx
docker ps             # 显示正在运行的容器
docker ps -a          # 显示所有容器(包括已停止的)
docker stop <container_id> #停止运行中的容器
docker start <container_id> # 启动已经停止的容器
docker restart <container_id> #重启容器  
docker rm <container_id>#删除一个容器
docker rmi <image_id> #删除镜像 
docker logs <container_id> #查看容器日志
docker exec -it <container_id> /bin/bash   # 进入容器的终端 
docker run -it ubuntu bash # 运行 ubuntu 容器并进入交互模式

打包 .NET 应用为 Docker 镜像

打包 .NET 应用为 Docker 镜像需要创建一个 Dockerfile,定义构建和运行应用的步骤。

1. 创建一个 .NET 项目

用VS创建一个Net8.0的web api项目,勾选启用容器支持.

2. 创建 Dockerfile

在项目根目录创建一个名为 Dockerfile 的文件,这个是一个用在Linux下创建镜像的文件,要注意下Dockerfile是在解决方案文件夹还是项目文件夹,文件在不同的地方,下面COPY命令的路径会不一样,我这里是项目文件夹
内容如下:

# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080# 此阶段用于生成服务项目
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["WebApplication10.csproj", "."]
RUN dotnet restore "./WebApplication10.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "./WebApplication10.csproj" -c $BUILD_CONFIGURATION -o /app/build# 此阶段用于发布要复制到最终阶段的服务项目
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./WebApplication10.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication10.dll"]

3. 构建 Docker 镜像

使用以下命令构建 Docker 镜像:

docker build -t mywebapp .

image
image
image

4. 运行 Docker 容器

镜像构建完成后,使用以下命令运行容器:

docker run -d -p 8088:80 --name mywebapp_container mywebapp
  • --name 容器的名字。
  • -d 表示以后台模式运行容器。
  • -p 8088:80 表示将容器的 80 端口映射到主机的 8088 端口。

image

访问 http://localhost:8088 应该可以看到 .NET Core 应用运行的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

利用Python开发Exporter,集成Prometheus和Grafana对进程监控

利用Python开发Exporter,集成Prometheus和Grafana对进程监控 在现代软件开发和运维中,监控是确保系统稳定运行和快速响应问题的重要手段。Prometheus和Grafana的组合是监控领域的强大工具,它们能够收集、处理和展示各种指标数据。本文将介绍如何利用Python开发一个Exporter,…

软工结对项目

这个作业属于哪个课程 结对项目这个作业要求在哪里 结对项目这个作业的目标 合作完成一个自动生成小学四则运算题目的命令行程序结对组合成员介绍结对组合成员姓名 学号 GitHub项目地址苏清仪 3222004337 GitHub项目地址张易欣 3222004811 GitHub项目地址PSP表格PSP2.1 Persona…

Docker镜像、Spark支持多表...Apache SeaTunnel 2.3.8版本将带来的惊喜

Apache SeaTunnel 2.3.8版本即将于大家见面,近日,Apache SeaTunnel PMC Member 范佳在社区的交流会上为大家提前透露了关于这个新版本即将进行的功能与特性更新概况,详细内容如下: SeaTunnel 简介 SeaTunnel是一个高性能的开源分布式数据集成系统,支持各种数据源的实时流式…

校青协宣传推广中心-二面-作品展示

主题图片ps:主题图片引用自扬州大学青年志愿者协会官Q 作品展示

深入理解 Nuxt.js 中的 app:error 钩子

title: 深入理解 Nuxt.js 中的 app:error 钩子 date: 2024/9/27 updated: 2024/9/27 author: cmdragon excerpt: 摘要:本文深入讲解了Nuxt.js框架中的app:error钩子,介绍其在处理web应用中致命错误的重要作用、使用方法及实际应用场景。通过创建Nuxt项目、定义插件、触发错…

黑马PM-内容项目-产品需求说明

产品需求说明产品交互需求说明如何撰写产品交互需求说明

MySQL窗口函数汇总

1.窗口函数概述窗口函数是一种SQL函数,非常适合于数据分析,其最大的特点就是:输入值是从SELECT语句的结果集中的一行或者多行的"窗口"中获取的,也可以理解为窗口有大有小(行数有多有少)。通过OVER子句,窗口函数与其他的SQL函数有所区别,如果函数具有OVER子句…

深入工作流调度的内核

在大数据时代,工作流任务调度系统成为了数据处理和业务流程管理的核心组件,在大数据平台的构建和开发过程中尤为重要。随着数据量的激增和业务需求的多样化,合理的任务调度不仅能够提高资源利用率,还能保证业务流程的稳定和高效运行。本文将结合实际场景,探讨目前市面上常…