zoukankan      html  css  js  c++  java
  • 使 .NET Core 应用程序容器化笔记


    先创建一个.Net Core应用,用来放到Docker容器中运行。

    1.创建 .Net Core 应用,项目名:"App"
    dotnet new console -o App -n NetCore.Docker

    2.启动应用:
    dotnet run

    3.调用Visual Studio Code 中打开包含该项目的“App”文件夹
    code .

    4.停止正在运行的应用:
    Ctrl+C

    5.启动应用,并传递参数
    dotnet run -- 5

    6.发布 .Net Core 应用,“发布”文件夹的路径应为 .AppinRelease et5.0publish
    dotnet publish -c Release


    创建映像,创建容器。

    1.创建 Dockerfile 文件, 无后缀名,内容:
    FROM mcr.microsoft.com/dotnet/runtime:5.0
    COPY bin/Release/net5.0/publish/ App/
    WORKDIR /App
    ENV COMPlus_EnableDiagnostics=0
    ENTRYPOINT ["dotnet", "NetCore.Docker.dll"]

    FROM 指定可公开访问的容器映像名称。
    COPY 命令将“publish”文件夹被复制到容器中的“App”文件夹 。
    WORKDIR 命令将容器内的当前目录更改为“App” 。
    ENV COMPlus_EnableDiagnostics=0 表示容器将以只读方式运行。
    ENTRYPOINT 指示 Docker 将容器配置为可执行文件运行。 在容器启动时,ENTRYPOINT 命令运行。 当此命令结束时,容器也会自动停止。

    运行命令:
    docker build -t counter-image -f Dockerfile .
    counter-image是创建的映像名称,命令中的 . 指示 Docker 在当前文件夹中查找 Dockerfile 。

    2.列出已安装的映像:
    docker images

    3.删除映像。
    依次删除 Dockerfile 创建的映像,以及 Dockerfile 所依据的 .NET Core 映像。 可以使用 IMAGE ID 或 REPOSITORY:TAG 格式字符串。
    docker rmi counter-image:latest
    docker rmi mcr.microsoft.com/dotnet/aspnet:5.0

    4.创建容器:
    docker create --name core-counter counter-image
    core-counter是容器名称,counter-image是映像名称,
    可以这么理解:映像是一个抽象对象,容器是映像的一个具体实例,一个映像可以有N多个具体实例,创建的.Net Core应用就是放在容器里去运行的。

    5.查看正在运行的容器:
    docker ps

    6.查看所有容器:
    docker ps -a

    7.删除容器:
    docker rm core-counter

    8.启动容器:
    docker start core-counter

    9.停止容器:
    docker stop core-counter

    10.连接到容器:
    docker attach --sig-proxy=false core-counter
    在容器运行后,可以连接到它来查看输出,Ctrl+C 击键用于从正在运行的容器中分离出来。 除非另行指定,否则此击键将结束容器中的进程,这会停止容器。 --sig-proxy=false 参数可确保 Ctrl+C 不会停止容器中的进程。

    11.单次运行:
    docker run -it --rm counter-image 3
    docker run 相当于docker create+docker start。
    使用 docker run -it,Ctrl+C 命令会停止在容器中运行的进程,进而停止容器。
    由于提供了 --rm 参数,因此在进程停止时自动删除容器。
    3 是传给应用的参数。

  • 相关阅读:
    2020春-C高级--第二周--视频内容大纲
    2020春-C高级--第一周视频内容大纲
    2020春-C高级-预习作业1
    2019年上-C语言程序设计-第1次blog作业
    2019年上-C语言程序设计课程内容
    2018上C语言程序设计(初级)作业- 第2次作业
    2018下C语言基础课第1次作业
    2018上C语言程序设计(高级)作业- 第4次作业成绩及总结
    2020软件工程作业00--问题清单
    2020软件工程个人作业06——软件工程实践总结作业
  • 原文地址:https://www.cnblogs.com/v-dai/p/14949029.html
Copyright © 2011-2022 走看看