-
创建Web API项目
目标框架:选择.NET 5.0和.NET CORE 3.1 都可以
启用Docker:打上勾,自动生成Dockerfile文件,用于构建docker镜像文件
项目创建完成,会弹出一个是否安装 Docker Desptop,选择否即可。(我这里没有弹出来,以前点过)
接下来创建一个API控制器(空),里面添加两个API
项目启动默认是Docker,改成DockerDemo
启动项目,测试一下项目是否有问题,和创建的API是否成功
GetCurrentDate和PostServerIP测试没问题
移动Dockerfile
原因在于这个Dockerfile指定的目录是基于上一层
-
将代码上传到仓库(github或gitee)
在gitee上面创建一个项目
按照这些命令把代码上传到gitee
代码上传完成
-
下载代码到服务器
-
生成镜像文件
在Dockerfile目录下执行 docker build -f Dockerfile -t webapi .
-f 后面是构建镜像的文件名
-t 后面是将要构建的镜像名称
一路闪电带火花,当遇到以下的输出后,就表示生成成功了
Successfully built e9fc34d47a8a
Successfully tagged webapi:latest
也可以通过 docker images 命令查看
启动镜像
执行命令 docker run -d --name webapi01 -p 60001:80 webapi
通过 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
远程chrome访问
1. 在防火墙添加60001端口白名单或者关闭防火墙
2. 如果是云服务,那么需要在云服务中添加端口白名单
Postman也请求成功了