.net core 部署 Docker 所遇到的几个问题
1.Connection reset by peer
造成这个问题的主要原因是在program.cs 文件中,未加入端口:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000")
.UseStartup<Startup>();
然后重新生成静象,打包容器,就可以了。
2.时间问题
在容器里面获取到的时间,要比真实时间少。docker 里面的时区是外国的,不是中国的。
解决方法,在配置文件中加入时区设置
#crosoft/dotnet:1.0.0-core` 来构建我们的镜像
FROM microsoft/dotnet:latest
#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中
COPY . /api.moodfans.com
#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR /api.moodfans.com
#设置Docker容器对外暴露60000端口
EXPOSE 5000
#设置时间为中国上海
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#使用`dotnet Mood.API.dll`来运行应用程序
CMD ["dotnet", "demo.dll"]
问题3 ,在重启后,自动运行容器
在 docker run 命令中 加入 --restart always
如下
docker run --name demoname -d -p 666:5000 --restart always imagename
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?