.Net8.0 打包镜像以及启动容器
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 .
4. 运行 Docker 容器
镜像构建完成后,使用以下命令运行容器:
docker run -d -p 8088:80 --name mywebapp_container mywebapp
--name
容器的名字。-d
表示以后台模式运行容器。-p 8088:80
表示将容器的 80 端口映射到主机的 8088 端口。
访问 http://localhost:8088
应该可以看到 .NET Core 应用运行的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!