Asp.Net Core 在Debian环境下使用docker部署
官网地址:https://docs.docker.com/engine/install/debian/
1.docker在Debian环境下安装
1.1卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
1.2安装 Docker Engine-Community
使用 Docker 仓库进行安装
sudo apt-get update
1.3安装 apt 依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
1.4添加 Docker 的官方 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
1.5验证您现在是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
1.6设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) \
stable"
1.7安装 Docker Engine-Community(安装最新版和指定版任选其一)
更新 apt 包索引:
sudo apt-get update
(1)安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
(2)安装特定版本的 Docker Engine-Community
列出可用版本
apt-cache madison docker-ce
安装特定版本命令
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
1.8测试Docker安装是否成功
sudo docker run hello-world
1.9普通用户无法直接使用docker命令
sudo usermod -aG docker $USER
systemctl restart docker
sudo docker run hello-world
1.10卸载
删除安装包
sudo apt-get purge docker-ce
删除镜像、容器、配置文件等内容
sudo rm -rf /var/lib/docker
1.11阿里云镜像加速
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://****.mirror.aliyuncs.com"]
}
2.Debian配置vim
使用vim粘贴时无法使用
2.1安装vim
sudo apt-get install vim
2.2修改配置文件
vim /usr/share/vim/vim80/defaults.vim
如果没找到可以使用find命令去找
sudo find -name defaults.vim
sudo vim ./usr/share/vim/vim81/defaults.vim
把 set mouse=a 改为 set mouse-=a
3.docker部署
https://www.cnblogs.com/pengboke/p/15133890.html
大致和我之前写的差不多,之前写的linux服务器是自己虚拟机的centos7,现在的服务器是Debian
需要注意的如果在代码里使用了UseUrls,那docker run的时候-p是UseUrls的端口,要不没法访问,具体原因未知
我以为docker run 还是以Dockerfile里Expose的端口为主
4.asp.net core部署在linux下路径拼接问题
将程序部署在linux下发现没有正常的返回结果,因为需要读取特定的文件
经检查,容器部署成功后,目录也成功映射在宿主机上
docker run --name=slicehttp1server -p 9000:9000 -v /home/net5/slicefile/:/home/net5/slicefile/ -d slicehttp1image
docker ps -a
docker exec -it slicehttp1server /bin/bash
将路径通过返回输出发现路径有问题
Windows和Linux路径分隔符不一样
Windows:
File file1 = new File ("C:\demo\aa.txt");
Linux:
File file2 = new File ("/demo/aa.txt");
4.3使用Path.DirectorySeparatorChar代替路径分隔符
官网地址:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.path.directoryseparatorchar?view=net-5.0
以后net程序如果需要部署到linux,设计到路径尽量使用Path.DirectorySeparatorChar代替分隔符

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!