Docker学习笔记-磁盘挂载运行.netcore

前言:

环境:centos7.5 64 位

正文:

首先我们在宿主机上安装 .NET Core SDK

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.2

安装好之后,创建一个 .NET Core MVC的项目:

cd $HOME
mkdir demo
cd demo
#创建一个HelloDocker.Web的MVC项目
dotnet new mvc -n HelloDocker.Web
cd HelloDocker.Web
dotnet run

这个时候可能会报错,我一开始以为是IPV6的问题,后来发现并不是

avatar

vi Program.cs

加一句这个就可以了

avatar

直接浏览器访问 http://IP:5000

然后关掉
这时访问不了 http://IP:5000

挂载到容器中

# `\`结合`Enter`键构成换行符,可以换行输入一个长命令。
#-it以交互模式(进入容器内部)
#-p参数端口映射
#-v参数挂载宿主机的文件到容器的指定目录 $HOME/demo/HelloDocker.Web文件夹下的文件挂载到容器的\app目录下。

docker run -it \
-p 5000:5000 \
-v $HOME/demo/HelloDocker.Web:/app \
microsoft/dotnet:latest

这一步可能会出错

WARNING: IPv4 forwarding is disabled

启用IPV4 IP的转发:

检查当前值:

/sbin/sysctl net.ipv4.conf.all.forwarding

启用设置:

/sbin/sysctl -w net.ipv4.conf.all.forwarding=1

检查输出docker info:

docker info

再重新执行上面的长命令,不报错,已经进入容器内

cd app
dotnet run

浏览器访问 http://IP:5000

成功

容器内部中的app目录下包含了宿主机上的源码项目。是以共享的形式,而不是宿主机的拷贝,在宿主机上对目录的更改会即时反应到容器中。但反过来,容器中对共享目录的更改不会反应到宿主机上,容器具有隔离特性。

posted @   HANFAN  阅读(884)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示