您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux CentOS下docker如何部署Asp.Net6 Core
## 前言
在当今云原生时代,Docker已成为应用部署的标准工具之一。本文将详细介绍如何在CentOS系统上使用Docker容器化部署ASP.NET Core 6应用程序,涵盖从环境准备到生产部署的完整流程。
---
## 一、环境准备
### 1.1 系统要求
- CentOS 7/8(推荐7.6+版本)
- 至少2GB内存
- 20GB可用磁盘空间
### 1.2 安装Docker
```bash
# 卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker引擎
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install -y dotnet-sdk-6.0
dotnet new webapi -n MyAspNetCoreApp
cd MyAspNetCoreApp
在Program.cs
中添加:
app.UseUrls("http://*:5000");
dotnet run
在项目根目录创建Dockerfile
:
# 使用官方.NET 6运行时镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
# 使用SDK镜像构建
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["MyAspNetCoreApp.csproj", "."]
RUN dotnet restore "MyAspNetCoreApp.csproj"
COPY . .
RUN dotnet build "MyAspNetCoreApp.csproj" -c Release -o /app/build
# 发布
FROM build AS publish
RUN dotnet publish "MyAspNetCoreApp.csproj" -c Release -o /app/publish
# 最终镜像
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyAspNetCoreApp.dll"]
docker build -t my-aspnetcore-app .
docker run -d -p 5000:80 --name myapp my-aspnetcore-app
创建docker-compose.yml
:
version: '3.8'
services:
webapp:
image: my-aspnetcore-app
build: .
ports:
- "5000:80"
environment:
- ASPNETCORE_ENVIRONMENT=Production
restart: always
启动服务:
docker-compose up -d
# 在Dockerfile中添加
ENV ASPNETCORE_URLS=https://+:443
ENV ASPNETCORE_HTTPS_PORT=443
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
检查日志:
docker logs myapp
修改映射端口:
docker run -d -p 8080:80 --name myapp my-aspnetcore-app
在Dockerfile中添加:
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
latest
标签
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost/health || exit 1
docker run -d --memory=512m --cpus=1 my-aspnetcore-app
通过Docker部署ASP.NET Core 6应用可以实现环境一致性、快速部署和弹性扩展。本文介绍的方法同样适用于其他.NET Core版本,只需调整镜像标签即可。在实际生产环境中,建议结合CI/CD管道实现自动化部署。 “`
注:本文实际约1100字,包含了从环境准备到生产部署的完整流程,采用Markdown格式编写,可直接用于技术文档发布。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。