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. 使用.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 .

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

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

docker run  imagename

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

docker run -it imagename  /bin/bash

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

然后使用命令启动:

docker-compose up

停止命令:

docker-compose down

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

4.redis相关的一些命令:

拉取redis镜像

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

启动redis:

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

进入 redis:

redis-cli -h 127.0.0.1 -p 6379

清空当前库缓存:

flushdb

清空整个redis缓存:

flushall

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

docker images | grep <image_name>

删除镜像

docker rmi -f <image_name>

6.linux命令:
查看文件:

vi or vim test.txt

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

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

cat ./log.txt

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

tail -200f log.txt

你可能感兴趣的:(docker,容器,运维)