首页 > 其他分享 >Docker打包Net8.0镜像

Docker打包Net8.0镜像

时间:2024-09-27 11:01:17浏览次数:1  
标签:容器 Net8.0 build dotnet 镜像 Docker docker

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 应用运行的结果。

标签:容器,Net8.0,build,dotnet,镜像,Docker,docker
From: https://www.cnblogs.com/dx5800/p/18423028

相关文章

  • 【AIGC】国内ChatGPT-4o中文镜像网站整理汇总
      一、中文镜像站① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT③ AIChat 支持GPT3.5/4,4o以及MJ绘画二、模型知识1、模型基础信息GPT-3.5Turbo:官方已经计划下线,现在已经全面被gpt-4o-mini替代......
  • Docker-入门
    Docker:Docker是用Go语音开发,在软件系统上做到资源的隔离,不像虚拟机会将整套系统复制,其虚拟机本身的运行就占据了实体机的部分性能.而Docker的资源隔离则不会,在Docker中跑资源和在物理机上跑资源基本相似。Docker环境依赖:Docker只能在基于linux系统运行的环境中,在windows中使用......
  • zlibrery官网镜像网站国内最新可用网址(持续更新)
     zlibrery现状 zlibrery是知名的数字图书馆。它拥有海量的电子书籍、学术论文等资源,涵盖各种领域和语种。zlibrery用户可免费下载或在线阅读。其资源丰富性为广大读者和研究者提供了便利。然而,其合法性曾受质疑。尽管面临诸多挑战,zlibrery仍在一定范围内被广泛使用,成为人......
  • Docker Remote API 配置
    DockerRemoteAPI配置环境配置操作系统:CentOSStreamrelease9Docker:DockerEngine:27.3.1DockerAPI:1.47配置DockerRemoteAPIsudosystemctleditdocker.service删除所有内容,然后添加如下内容:[Service]ExecStart=ExecStart=/usr/bin/dockerd-Hfd://......
  • docker安装及docker的常用操作。
    目录1、什么是docker2、什么是沙盒3、docker容器和虚拟机的区别4、Docker架构1、docker分三大部分1、docker客户端2、docker主机3、远程仓库2、两个关键词1、镜像2、容器3、核心概念4、docker的特性及优点5、部署docker环境1、查看一下Linux内核版本2、卸载老......
  • 9月持续更新|国内ChatGPT-4中文镜像网站整理汇总
    一、GPT镜像中文网站1.yixiaai.comChatgpt的中文版,支持GPT4以及4o、o1,支持MJ绘画2.chat.lify.vip GPT官网复刻,体验感超高3.ai.lansejingyu.com支持GPT3.5/4以及4o4.lanjing.ai支持GPT3.5\4.0以及4o二、超好用论文写作指令1、写作选题指令①确定研究对象     ......
  • Docker 教程:在 Mac M2 上运行 PostgreSQL
    前提条件  -已安装[DockerDesktop] 创建Docker卷  首先,创建一个名为`pgdata`的Docker卷,以便用于PostgreSQL数据存储。  dockervolumecreatepgdata运行PostgreSQL容器  使用以下命令启动PostgreSQL容器:  dockerrun--namepostgres -ePOS......
  • 龙芯3A6000+loongnix20.6操作系统安装idea社区版2024和docker
    龙芯3A6000+loongnix20.6操作系统安装idea社区版和docker1.搭建目标:安装jdk8安装idea社区版-2024(需要jdk17)安装docker(可选)配置docker自动补全(可选)如何使用docker拉取镜像(可选)2.配置说明主机:中科云3A6000NUC操作系统:loonignix-20.63.安装jdk3.1安装jdk8打开桌......
  • Docker容器启动Redis设置密码并持久化
    启动命令dockerrun--namewh-redis-p6379:6379-v/root/RedisData:/data-d--restartunless-stoppedredis--appendonlyyes--requirepass'Your-password'dockerrun:启动一个新的Docker容器。--namewh-redis:给容器指定一个名称,容器名为wh-redis。指定名......
  • Docker Compose 学习笔记
    DockerCompose学习笔记DockerCompose安装安装完DockerEngine后,以插件方式安装DockerCompose:设置安装源sudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo安装Composepluginsudo......