zoukankan      html  css  js  c++  java
  • 【Docker】使用 Docker 部署 .Net Core 项目 (四)

     系列目录:

    【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )            

    【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) 

    【Docker】 .Net Core 3.1 webapi 集成EF Code First (MySql) (三)

    【Docker】使用Docker 发布 .Net Core 项目 (四)  

    .......持续不定期更新中

    如果安装使用Docker 请看目录(一)、(二),此文章不再介绍。

    首先要生成Dockerfile文件,然后根据这个文件build docker 的 image(镜像),然后根据image,创建container(容器)。

    1.把要发布的项目添加 Docker 支持(或者在新建项目的时候就添加docker支持),然后在项目目录下找到 Dockerfile 配置文件。

     右键dockerfile文件,复制到输出目录改为 始终复制 ,这样发布的项目才会包含这个文件。

     

    2. 修改dockerfile文件

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
    #工作目录
    WORKDIR /app
    #将整个publish文件 放到该文件夹下   ..的意识是 ./app
    COPY . .
    EXPOSE 8001
    #启动命令   如果项目内没有指定useUrl 可以使用 ENTRYPOINT ["dotnet", "Test.dll","urls=http://*:8001"] 指定
    ENTRYPOINT ["dotnet", "Test.dll"]

    发布项目,把Publish目录下的文件 拷贝到Linux 服务器中

    3. 到目标目录下,使用构建docker image

    docker build -t test .

    test的意思是这个 image 的名字取名为test

    使用 docker images查看镜像是否创建

    docker images

     

    4. 启动容器

    生成容器,每运行一次,就会新建一个容器(这里的5000:5000 代表把容器内的5000端口映射到你主机的5000端口,容器端口在后)

    --name 是指定容器的名字 不指定会默认

    docker run --name test1 -it -p 5000:5000 test

    执行完之后报错,提示如下

     研究后得知,我在项目中配置了https的地址,然而https在docker中不启用。

    解决办法:删除不使用https 或者修改 appsetting文件

    "Kestrel": {
        "Endpoints": {
          "HttpsInlineCertFile": {
            "Url": "https://*:8001",
            "Certificate": {
              "Path": "socialnetwork.pfx",
              "Password": "xxx"
            }
          }
        }
      }

    5.继续创建容器,先删除之前容器和镜像,再重新build镜像,run容器。

    docker rmi test
    docker rm test1
    docker build -t test .
    docker run --name test1 -it -p 5000:5000 test

    运行成功

     测试启动成功,现在把这个容器删除 继续创建容器,命令加上 -d,使容器后台运行

    docker run --name test1 -it -d -p 5000:5000 test

    网页正常访问,你看到端口是80,是因为使用了nginx转发

    6.检查运行状态、日志

    查看容器运行状态

    docker ps -a

    查看docker日志

    docker logs --since 30m CONTAINER_ID

     其他具体操作请看【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 ) 

  • 相关阅读:
    实现翻页效果
    使用AHKActionSheet
    [翻译] GSProgressView
    [翻译] NSRegexTester
    下载时获取文件大小
    高级mask应用
    使用UILabel实现滚动字幕移动效果
    动画绘制水波纹
    能产生粒子效果的CAEmitterLayer
    使用UITableView实现图片视差效果
  • 原文地址:https://www.cnblogs.com/simawenbo/p/14067730.html
Copyright © 2011-2022 走看看