• 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]
    name=packages-microsoft-com-prod 
    baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
    enabled=1
    gpgcheck=1
    gpgkey=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目录下包含了宿主机上的源码项目。是以共享的形式,而不是宿主机的拷贝,在宿主机上对目录的更改会即时反应到容器中。但反过来,容器中对共享目录的更改不会反应到宿主机上,容器具有隔离特性。

  • 相关阅读:
    《C++标准程序库》 第6章 STL Container
    《C++语言99个常见编程错误》
    单例模式
    《C++标准程序库》 第7章 Iterator Adapters
    Shell颜色封装(C++)
    《改善C++程序的150个建议》
    OpenCV之图片的创建、保存和复制
    XMLDOM对象方法:对象事件
    三国中最精辟的十句话
    中国十大名茶及鉴别方法
  • 原文地址:https://www.cnblogs.com/hanfan/p/10143959.html
Copyright © 2020-2023  润新知