• docker本地容器化部署项目


    1.首先确保手机有一个netcore项目,或者直接创建一个abp项目,可以启动发布就行。
    2.添加Dockerfile文件配置部署文件等。
    Dockerfile文件在项目根目录添加

     
       # 使用基础镜像
       FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
    
       # 设置工作目录
       WORKDIR /app
    
       # 复制项目文件到工作目录
       COPY *.csproj ./
       RUN dotnet restore
    
       # 复制所有文件到工作目录
       COPY . ./
    
       # 构建项目
       RUN dotnet publish -c Release -o out
    
       # 使用运行时镜像
       FROM mcr.microsoft.com/dotnet/aspnet:6.0
       WORKDIR /app
       COPY --from=build-env /app/out .
    
       # 设置环境变量
       ENV ASPNETCORE_URLS=http://*:80
    
       # 暴露端口
       EXPOSE 443
    
       # 启动应用程序
       ENTRYPOINT ["dotnet", "YourProjectName.dll"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    
    每个步骤的解释:
    
    1. 使用.NET Core SDK作为基础镜像。
    2. 将工作目录设置为/app。
    3. 复制项目文件(.csproj)到容器中,并执行dotnet restore以还原依赖项。
    4. 复制所有源代码到容器中。
    5. 构建应用程序,并将发布的输出放置在/app/out目录中。
    6. 使用.NET Core ASP.NET运行时作为基础镜像。
    7. 将工作目录设置为/app。
    8. 从之前的构建阶段复制发布的输出到容器中。
    9. 暴露ABP应用程序监听的端口(默认为443)。
    10. 设置容器的入口点为dotnet NonWasteCity.HttpApi.Host.dll。
    
    然后使用命令部署项目:
    
    ```csharp
    docker build -t imagename .
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    imagename 小写后面有个空格还有个.

    部署完没有问题可以使用命令启动:

    docker run  imagename
    
    • 1

    或者可以使用交互式命令:

    docker run -it imagename  /bin/bash
    
    • 1

    3.如果要关联使用一些redis、mysql等,可以使用docker-compose.yml,同样放在项目根目录

    version: '3'
    services:
      api:
        build:
          context: .
          dockerfile: Dockerfile
        ports:
          - 5123:81
        depends_on:
          - redis
          - mysql
        environment:
          - ConnectionStrings__Default=Server=mysql;Database=nonwastecity;User Id=root;Password=yyb270618
          - Redis__ConnectionString=localhost:1234
      redis:
        image: redis:latest
        ports:
          - 1234:1234
      mysql:
        image: mysql:latest
        ports:
          - 3306:3306
        environment:
          - MYSQL_ROOT_PASSWORD=yyb270618
          - MYSQL_DATABASE=nonwastecity
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    然后使用命令启动:

    docker-compose up
    
    • 1

    停止命令:

    docker-compose down
    
    • 1

    使用docker-compose部署就不用再另外使用DockerFile启动部署了。

    4.redis相关的一些命令:

    拉取redis镜像

    RUN apt-get update && apt-get install -y redis-server
    
    • 1

    启动redis:

    docker run -d -p 6379:6379 --name redis redis
    --根据某一个镜像启动redis
    docker run --name redis -d -p 6379:6379 6a2d3d520eff
    
    • 1
    • 2
    • 3

    进入 redis:

    redis-cli -h 127.0.0.1 -p 6379
    
    • 1

    清空当前库缓存:

    flushdb
    
    • 1

    清空整个redis缓存:

    flushall
    
    • 1

    5.docker 命令:
    docker查看某一个镜像

    docker images | grep <image_name>
    
    • 1

    删除镜像

    docker rmi -f <image_name>
    
    • 1

    6.linux命令:
    查看文件:

    vi or vim test.txt
    
    • 1

    点击a或者i进入编辑状态.
    编辑完成后点击ESC键退出编辑状态。
    最后敲:wq保存修改。

    只是单纯看文件内容可以用

    cat ./log.txt
    
    • 1

    tail命令可以实时查看文件,但有行数限制

    tail -200f log.txt
    
    • 1
  • 相关阅读:
    POJ 3481、HDU 1908、AcWing 5125:双端队列 ← STL map
    maven-之Lifecycle详解
    vue+Ts+element组件封装
    spark3.0.2搭建教程
    vue3.2 之 i18n的使用
    分布式数据库OceanBase的安装
    Postman —— postman的介绍和安装
    Vue 商城项目开发实战
    ADO.net的基本用法
    Java进阶(垃圾回收GC)——理论篇:JVM内存模型 & 垃圾回收定位清除算法 & JVM中的垃圾回收器
  • 原文地址:https://blog.csdn.net/qq_25086397/article/details/133178112