Docker + .NET Core(二)

原文: Docker + .NET Core(二)

前言:

环境: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目录下包含了宿主机上的源码项目。是以共享的形式,而不是宿主机的拷贝,在宿主机上对目录的更改会即时反应到容器中。但反过来,容器中对共享目录的更改不会反应到宿主机上,容器具有隔离特性。

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/10247229.html