docker 部署 .net6.0 项目

docker 部署 .net6.0 项目

需要了解 docker 基本命令,以及编译后的.net6.0 项目。在项目文件夹中,创建 Dockerfile 文件。

Dockerfile 文件内容

Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS final
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone

RUN mkdir /app #在容器中创建 app 文件夹
COPY ./ /app #将宿主本地文件 拷贝到 容器的 app 文件夹中

EXPOSE 21021 #暴露端口给宿主

ENV ASPNETCORE_ENVIRONMENT=Production

WORKDIR /app
ENTRYPOINT ["dotnet", "demo.dll"]

docker 基本命令

在安装 docker 的系统中,使用基础命令,执行任务:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 构建镜像,在 Dockerfile 跟目录下,执行:
docker build -t demo_api:1.0.0 .
# 1.0.0 是 镜像版本
# . 需要保留

# 创建容器,并运行容器
docker run --name demo_api -d -p 21021:21021 -v /root/demo_api:/app demo_api:1.0.0
# -d 后台运行
# -p 端口映射
# --rm 指定 容器停止后,删除容器
# -v 文件路径映射
# --privileged=true 关闭安全权限,否则你容器操作文件夹没有权限
# 最后面是镜像名称和版本

# 启动容器
docker start demo_api

# 停止容器
docker stop demo_api // demo_api 是容器的 ID

# 查看所有容器
docker ps -a

# 查看所有容器 ID
docker ps -a -q

# stop 停止所有容器
docker stop $(docker ps -a -q)

# remove 删除所有容器
docker rm $(docker ps -a -q)

# 重启容器
docker restart demo_api

#查看 容器 日志
docker logs --since 30m pims_api

# 查看运行中的容器
docker ps

# 查看镜像
docker images

# 删除 容器
docker rm #ID

# 删除 镜像
docker rmi #ID

# 进入容器
docker exec -it pims_api /bin/bash
# -it 交互式 终端

curl -d '{"operationSn": "202410280009","number": "2241027022"}' -H "Content-Type: application/json" -X POST "http://localhost/systemapp/publicapi/system/interface/request/6000101"
# curl post 请求