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

  • 相关阅读:
    Jenkins获取运行job的用户名(在构建历史中展示构建人)
    Android -tool工具UIautomatorviewer提示“不能让屏幕黑屏”
    转: 谈谈关于内存的一些心得体会
    IP地址,子网掩码划分(转)
    重定向子进程控制台程序的输入输出
    正则表达式(1)
    Log4Net使用指南(转)
    使用wireshark抓本机之间的包(转)
    VirtualBox开发环境的搭建详解(转)
    SxsTrace工具使用方法(转)
  • 原文地址:https://www.cnblogs.com/hanfan/p/10143959.html
Copyright © 2011-2022 走看看