本文介绍从创建 net6.0 项目运行在 windows 开发环境的 docker 然后正式部署至 liunx 服务器。
1 windows10 安装 docker
- 下载docker-desktop
- 双击下载后的文件直接安装一直下一步到安装成功
- 打开 docker,点击设置找到 Docker Engine 设置国内镜像
国内镜像地址可以在阿里云找到,阿里云镜像加速器登录之后可以看到一个加速地址,复制出来加入设置 docker 的配置就可以
图片里的配置 json 如下:{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "debug": false, "experimental": false, "features": { "buildkit": true }, "insecure-registries": [], "registry-mirrors": [ "加速器地址" ] }
2 用 vs2022 创建一个简单的 net6.0 项目
- 创建项目的时候选择启用 docker,
创建完之后可以发现项目多了一个 Dockerfile 文件(文件属性改为较新则复制,不然发布之后这个文件不会在目录里),修改文件相关内容如下图,避免运行时出错
图上内容最终结果为:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 3100
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY . .
ENV ASPNETCORE_URLS=http://+:3100
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
- 发布项目至文件夹,发布完成之后文件都在bin\Release\net6.0\publish下面
- 打开命令窗口,切换至发布目录下,执行docker buid生成镜像
注意最后的空格和点是必须的 - 执行完之后打开docker界面可以看到生成的镜像如下图:
- 执行docker run运行镜像
执行后打开docker界面切到容器运行可以看到运行起来的容器 - 打开浏览器访问http://127.0.0.1:3100/weatherforecast出现界面结果表示成功,weatherforecast这个表示这个项目的路由如果你的项目是其他路由那就写其他的路由不是固定的
3 将镜像推送至dockerhub
1.打开docker界面登录账号(如果没账号请先注册)
2.要上传至镜像仓库需要打上标签,才可以上传,执行标签命令docker tag 镜像名:版本号 dockerhub注册时候填的ID/镜像名:版本号
3.找到打了标签的镜像push
4.等到进度条走完,可以登录https://hub.docker.com查看提交的镜像
4 使用daocloud集群部署镜像到liunx服务器
1.在liunx服务器安装docker安装资源比较慢所以使用daocloud的加速镜像安装执行以下命令就可以
curl -sSL https://get.daocloud.io/docker | sh
2.登录daocloud添加服务器主机,方法在登录有一串命令复制到服务器执行就可以关联
3.关联之后找到上一步上传的镜像打开镜像进行部署
4.点击部署出现如下界面进行配置
5.部署完之后查看状态是否正常
6.用nginx反向代理绑定域名访问指向这个端口(自行百度如何用nginx)