zoukankan      html  css  js  c++  java
  • ASP.NET CORE做的网站运行在docker实践

    用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行?

    下面分两种方式来实践: 1、直接手动命今行,将本机目录映射进Docker,运行网站。2、制作 Image ,再启动 Docker 运行。

    一、将本机目录映射进Docker,运行网站fil

          1. vs中建立ASP.NET CORE网站,类名为WebApplication3. (在创建时,可以勾选上 Docker 。好处是会自动生成 Dockerfile 文件,方便后面抄写命令。)

          2. 发布到 e:/app 下。(随便建的发布目录)

          3. 先在本地CMD命令行测试一下是否成功,cd e:app, 再运行docnet WebApplication3.dll

         4. 浏览器输入http://localhost:5000 可以访问网站

         5. 退出命令行工具,开始进行docker镜像部署,前提是先装好docker,如果映射本地端口是80则记得先把IIS停了(如果你装了IIS的话)

         6. 在命令行上先安装 DotNetCore 运行环境:Docker pull microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803  和 Docker pull microsoft/dotnet:2.2-sdk-nanoserver-1803

             这两个命令行的具本内容,可以在工程自动生成的 Dockerfile 中找到。

             如果遇到错误:image operating system "windows" cannot be used on this platform

             请将 Docker 切换到windows 模式。

       

             7. 命令行CMD中输入docker命令 docker run -p 8001:80 -v e:/app:c:/wwwroot -w /wwwroot microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 dotnet WebApplication3.dll

               解释下上面的命令:运行docker容器,名字叫microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803,这是微软官方的asp.net core镜像,映射本地端口8001到容器内的80端口,把本地目录e:/app 映射为容器里的 C:/wwwroot 目录 , 把容器内的工作目录 设置为 /wwwroot,容器运行起来后再运行命令 dotnet /wwwroot/WebApplication3.dll

              请留意 -v 后面目录的写法。

              8.在浏览器中输入http://localhost:8001 应该就可以访问网站了,哪怕在命令行中按ctrl+c退出,但是实际上docker容器也是正在运行中,输入命令docker ps 可以看到正在运行的容器。

    二、网站制作 Image ,再启动 Docker 运行

          1. 在 e:/app 目录下,创建 Dockerfile 文件

    FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803
    EXPOSE 80
    EXPOSE 443
    
    FROM microsoft/dotnet:2.2-sdk-nanoserver-1803
    COPY . .
    ENTRYPOINT ["dotnet", "WebApplication3.dll"]

          2. 在命令行中输入 “docker build -t web3 . ” 创建镜像文件

          3. 通过 docker images 可以查看到新建的 web3 镜像。

          4. 启动镜像中的网站  docker run --name myWeb -p 9001:80 -d web3

          其中 -d 是后台运行的意思。输出一串编码,表示已经运行了。

          

          5. 在浏览器中输入http://localhost:9001 应该就可以访问网站了。

          6. 常用调试命令  docker ps 列出当前正在运行的 container , 还有  docker logs <container-id> 查看程序运行的log信息。

           删除 container 和 删除 image  也常用到。

    三、参考文章

         了解用于 Linux 和 Windows 容器的 Docker “容器主机”与“容器操作系统”

         Docker简单使用

          ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

         ASP.NET Core 2.1 使用Docker运行

         .net core build docker image

  • 相关阅读:
    FileZilla Server下载及安装
    FileZilla Server设置虚拟目录
    FileZilla Server超详细配置
    Freaktab将于12月底关闭
    Thinkpad笔记本指点杆(小红点)自动漂移的问题
    STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)
    STC12C5A56S2和DS12C887做的电子闹铃
    联盛德 HLKW806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD
    联盛德 HLKW806 (六): I2C驱动SSD1306 128x64 OLED液晶屏
    联盛德 HLKW806 (五): W801开发板上手报告
  • 原文地址:https://www.cnblogs.com/citycomputing/p/10777770.html
Copyright © 2011-2022 走看看