.netcore docker部署到centos

本文详述了如何使用Docker部署.NET Core应用程序,包括拉取官方镜像、创建Dockerfile、生成及运行容器、镜像推送至DockerHub等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部署站点

拉取官方镜像

docker pull microsoft/aspnetcore

按版本拉取

docker pull microsoft/dotnet:2.2-aspnetcore-runtime

发布.net core 程序到publish

在发布好的文件夹publish下新建Dockerfile内容如下

FROM microsoft/dotnet:latest
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "程序名称.dll"]

带图形库libgdiplus

FROM stulzq/dotnet:2.2.0-aspnetcore-runtime-with-image
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "<你的入口程序集>"]

或者

RUN apt-get update
RUN apt-get install libgdiplus 
将发布文件上传到Centos

在这里插入图片描述

进入发布目录

cd /dotnetSite/publish/

根据Dockerfile生成镜像
docker build -t (镜像名称) .
查看镜像

docker images

删除镜像
docker rmi (镜像名称)

为镜像生成容器并运行

docker run -it -d -p 0.0.0.0:80:5001 --restart=always --name (容器名称)(镜像名称)
注:80为宿主服务器端口,5001为容器端口

查看容器

docker ps

查看容器日志

docker logs (容器名称)
删除容器
docker rm (容器名称)
停止容器
docker stop (容器名称)

镜像发布

申请dockerhub账号:https://cloud.docker.com/
登录到 dockerhub

docker login
在这里插入图片描述

推送镜像到dockerhub

docker push 用户名/镜像名:tagname
推送成功后就可pull自己的镜像,参考pull微软官方的.netcore镜像

### .NET Core 应用程序部署与管理 #### 使用 Docker 部署 .NET Core 应用程序 为了在 Docker 容器中运行 .NET Core 庢应用程序,通常会创建一个 `Dockerfile` 文件来定义构建镜像所需的指令。下面是一个典型的用于 ASP.NET Core Web API 的 `Dockerfile` 示例: ```dockerfile # 使用官方的 SDK 映像作为构建环境 FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env WORKDIR /app # 将 csproj 和其他项目文件复制到工作目录并还原依赖项 COPY *.csproj ./ RUN dotnet restore # 复制其余源代码并将应用程序发布为单个可执行文件 COPY . ./ RUN dotnet publish -c Release -o out # 切换到最后阶段使用的轻量级运行时映像 FROM mcr.microsoft.com/dotnet/aspnet:7.0 WORKDIR /app COPY --from=build-env /app/out . # 设置容器启动命令 ENTRYPOINT ["dotnet", "YourApplication.dll"] ``` 此多阶段构建过程有助于减小最终生产映像大小的同时保持开发灵活性。 #### 解决常见问题 当遇到无法连接网络的情况时,可以考虑使用覆盖 (overlay) 网络而非默认网桥模式[^2]。对于希望跨多个主机通信的应用场景来说尤其重要。如果尝试加入不存在的网络,则会出现错误提示:“Error response from daemon: network mycontainer not found”。 另外,在某些情况下可能需要调整防火墙设置或确保所有必要的端口都已开放以便于外部访问托管的服务。 #### Podman vs Docker Containers 值得注意的是,在Kubernetes环境中,每一个正在运行的过程实际上都是一个pod实例而不是单独的容器;这其中包括了诸如kubelet这样的系统进程以及用户自定义的工作负载容器[^3]。然而,在讨论基于Docker的技术栈时,“容器”一词仍然广泛被用来指代由该技术所创建的基础单元。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值