本文介绍从创建 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)

最新文章

  1. MyBatis4:动态SQL
  2. Beta版本冲刺计划及安排
  3. PHP遍历、删除文件夹中的所有文件
  4. json,serialize,msgpack比较
  5. oracle表空间相关SQL语句
  6. Oracle密码过期the password has expired
  7. 《Unix网络编程》卷2 读书笔记 第1章-简介
  8. dede导航设置成单页面内容
  9. .net对文件的操作之文件读写
  10. rails跑通第一个demo
  11. HBase性能测试
  12. P65
  13. 借用mysql 或者其他数据库 处理MSSQL 2016前处理导入特殊字符
  14. Vuforia的图像识别之后的服务器下载与ARKit的兼容性解决
  15. 怎么用ajax下载文件
  16. Android 富文本编辑器实现方案
  17. C#基础知识回顾-- 反射(4)
  18. 5月17 利用AJAX查询数据库
  19. L305 发邮件15分钟
  20. 关于java分布式系统开关功能设计(服务升降级)

热门文章

  1. java标识接口
  2. springboot+vue脚手架使用nginx前后端分离
  3. sql优化的8种方式
  4. 【Java 8】Stream中的Pipeline理解
  5. 【Java基础】transient关键字
  6. ubuntu qq/微信
  7. matplotlib animation
  8. Hibernate的基本功能:对数据库的增删改查(创建对象实例)
  9. 攻击科普:ARP攻击
  10. [BUUCTF]REVERSE——新年快乐