•  创建Web API项目

.NET(CORE)程序手动部署到Docker_上传

 

目标框架:选择.NET 5.0和.NET CORE 3.1 都可以

启用Docker:打上勾,自动生成Dockerfile文件,用于构建docker镜像文件

 .NET(CORE)程序手动部署到Docker_白名单_02

 

项目创建完成,会弹出一个是否安装 Docker Desptop,选择否即可。(我这里没有弹出来,以前点过)

接下来创建一个API控制器(空),里面添加两个API

.NET(CORE)程序手动部署到Docker_git_03

 

 项目启动默认是Docker,改成DockerDemo

.NET(CORE)程序手动部署到Docker_git_04

 

启动项目,测试一下项目是否有问题,和创建的API是否成功 

 .NET(CORE)程序手动部署到Docker_git_05

 

GetCurrentDate和PostServerIP测试没问题

.NET(CORE)程序手动部署到Docker_docker_06

 

 移动Dockerfile

.NET(CORE)程序手动部署到Docker_.net_07

 

 原因在于这个Dockerfile指定的目录是基于上一层

.NET(CORE)程序手动部署到Docker_git_08

  

  •  将代码上传到仓库(github或gitee)

在gitee上面创建一个项目

 .NET(CORE)程序手动部署到Docker_上传_09

 

按照这些命令把代码上传到gitee

.NET(CORE)程序手动部署到Docker_上传_10

 

代码上传完成

 .NET(CORE)程序手动部署到Docker_上传_11

  • 下载代码到服务器

.NET(CORE)程序手动部署到Docker_白名单_12

  • 生成镜像文件

在Dockerfile目录下执行 docker build -f Dockerfile -t webapi .   

-f 后面是构建镜像的文件名

-t 后面是将要构建的镜像名称

.NET(CORE)程序手动部署到Docker_上传_13

一路闪电带火花,当遇到以下的输出后,就表示生成成功了

Successfully built e9fc34d47a8a

Successfully tagged webapi:latest

 也可以通过 docker images 命令查看

.NET(CORE)程序手动部署到Docker_.net_14

 

 启动镜像

 执行命令 docker run -d --name webapi01 -p 60001:80 webapi

.NET(CORE)程序手动部署到Docker_白名单_15

通过 docker ps 命令查看容器是否启动成功,和容器的一些其它信息

[root@VM-8-2-centos docker-demo]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
515a35a4ffd3 webapi "dotnet DockerDemo.d…" About a minute ago Up About a minute 443/tcp, 0.0.0.0:60001->80/tcp, :::60001->80/tcp webapi01

 

在Linux服务器本机使用curl请求部署的api

.NET(CORE)程序手动部署到Docker_白名单_16

 

远程chrome访问

1. 在防火墙添加60001端口白名单或者关闭防火墙

2. 如果是云服务,那么需要在云服务中添加端口白名单 

.NET(CORE)程序手动部署到Docker_.net_17

 

Postman也请求成功了

.NET(CORE)程序手动部署到Docker_上传_18