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

微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通的更多相关文章

  1. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    ❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...

  2. 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes)-kubernetes/dashboard

    本章介绍所需环境:ubuntu18.04,建立在上一篇微服务探索之路01篇已经安装了docker的基础上. 1 替换k8s镜像源为国内镜像 进入目录 cd /etc/apt/sources.list. ...

  3. 微服务探索之路04篇k8s增加子节点,metrics资源监控,ingress-nginx域名配置及https配置

    1 k8s增加子节点 1.1 子节点服务器安装docker,使用脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror A ...

  4. Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  5. Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  6. Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  7. Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。

    系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  8. Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

随机推荐

  1. hadoop基本命令(转)

    在这篇文章中,我们默认认为Hadoop环境已经由运维人员配置好直接可以使用. 假设Hadoop的安装目录HADOOP_HOME为/home/admin/hadoop. 启动与关闭 启动HADOOP 进 ...

  2. Function overloading and const keyword

    Predict the output of following C++ program. 1 #include<iostream> 2 using namespace std; 3 4 c ...

  3. 【Java基础】JAVA中优先队列详解

    总体介绍 优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素,C++的优先队列每次取最大元素).这里牵涉到了大小关系,元素大小的评判可以通过元素本身的自然顺序( ...

  4. 微软开源的Web测试和自动化神器 Playwright

    Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...

  5. 用法总结:NSArray,NSSet,NSDictionary

    用法总结:NSArray,NSSet,NSDictionary Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序 ...

  6. <转>libevent使用demo

    这篇文章介绍下libevent在socket异步编程中的应用.在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的 ...

  7. Python语法入门之与用户交互、运算符

    一.与用户交互 输入 获取用户输入 username = input('请输入您的用户名>>>:') '''将input获取到的用户输入绑定给变量名username''' print ...

  8. 解决Vulnhub靶机分配不到IP问题

    没法找到他的 ip,可能是网卡配置问题 (之前打开 .ova 文件默认联网方式是桥接,改成NAT) 在开机选择的时候,摁 e 编辑一下 把 ro 改成 rw single init=/bin/bash ...

  9. Windows Terminal 终端 SSH连接centos7 linux

    1.在Windows Store中安装 Windows Terminal 2.打开Windows Terminal,使用下拉箭头,打开设置. 3.在左侧点击"添加新配置文件",再点 ...

  10. 洛谷八月月赛 II T1 题解

    Content 在大小为 \(n\) 的数字三角形中,第 \(i\) 行包含有 \(i\) 个数字,数字从上到下,从左到右依次排列为 \(1,2,3,\dots\). 设第 \(i\) 行第 \(j\ ...