一步一步实现 .NET 8 部署到 Docker
一、前言
本文仅针对操作系统为 CentOS 8 的环境下部署方法进行讲述。如有需要,后续将在其他文章中进行其他系统下的部署方式讲解。
二、准备工作
- 确保服务器已安装 docker。
可以通过命令docker -v进行检查,如出现下图结果则表示已安装。

- 代码准备
在代码项目名称上右键,依次选择
添加 - Docker 支持...,弹出容器基架选项界面,如下图:

在 目标 OS 选择
Linux, 容器生成类型 选择Dockerfile,点击确定按钮此时项目中会增加一个名为
Dockerfile的配置文件。

内容大致如下:

打开项目 目录
Properties下launchSettings.json文件

将会看到新增的如下内容:

需要注意的是
Dockerfile文件中的EXPOSE后方的端口需要与Properties\launchSettings.json文件中的ASPNETCORE_HTTP_PORTS指定端端口一致,该端口在部署到 docker 后,将作为容器端口使用。
三、上传项目源码到服务器
上传代码到服务器的方式有很多,下面仅列举手动上传和从 git 克隆代码。
- 手动上传文件
利用工具WinSCP工具连接服务器后,上传文件。 - 从 git 克隆代码
进入服务器相关目录下,利用 git 命令git clone [url]进行代码克隆到服务器。
四、开始部署
将
Dockerfile文件移动到父级目录中。打开命令行窗口,利用
cd [路径]进入代码文件所在目录。输入命令
ls查看目录下文件,如下所示能看到 Dockerfile 文件

创建镜像
命令:docker build -t 镜像名称:版本号 .
参数:** -t 或 --tag **:用于指定镜像的名称和标签
示例:docker build -t swaggersimpledocker:1.0 .等待操作完成后,可通过命令 docker images 查看 docker 中已存在的镜像

创建容器
命令:docker run –name=容器名称 -p主机(宿主)端口:容器端口 -d 镜像名称:1.0
参数:--name:容器名称;-p:指定端口映射,格式为:主机(宿主)端口:容器端口;-d:后台运行容器,并返回容器ID
示例:docker run --name=swaggersimple -p 8080:8080 -d swaggersimple:1.0查看容器信息
输入命令:docker ps -a,可查看如下结果:

说明:状态(STATUS) 为Up则表示容器状态为运行中,Exited表示已停止。检查接口是否可以正常访问
输入命令:curl http://192.168.16.128:8080/api/Test/appinfo查看是否存在返回结果。

结束语
docker 容器部署已作为当前主流部署方式,欢迎大家一起交流学习。 QQ:2289480980
一步一步实现 .NET 8 部署到 Docker的更多相关文章
- 一步一步学ROP之linux_x86篇
一步一步学ROP之linux_x86篇 作者:蒸米@阿里聚安全 一.序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过 ...
- 一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)
cocos2d-x 3.0发布有一段时间了,作为一个初学者,我一直觉得cocos2d-x很坑.每个比较大的版本变动,都会有不一样的项目创建方式,每次的跨度都挺大…… 但是凭心而论,3.0RC版本开始 ...
- 跟我一步一步开发自己的Openfire插件
http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插 ...
- 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序
原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...
- 一步一步学习SignalR进行实时通信_4_Hub
原文:一步一步学习SignalR进行实时通信_4_Hub 一步一步学习SignalR进行实时通信\_4_Hub SignalR 一步一步学习SignalR进行实时通信_4_Hub 前言 创建Hub 配 ...
- 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域
原文:一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 一步一步学习SignalR进行实时通信\_3_通过CORS解决跨域 SignalR 一步一步学习SignalR进行实时通信_3_ ...
- 一步一步理解 python web 框架,才不会从入门到放弃 -- 开始使用 Django
背景知识 要使用 Django,首先必须先安装 Django. 下图是 Django 官网的版本支持,我们可以看到上面有一个 LTS 存在.什么是 LTS 呢?LTS ,long-term suppo ...
- jumpservice一步一步安装
一步一步安装 (CentOS) 本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 进阶安装文档 云服务器快速部署参考 极速安装 安装过程中遇到问题可参考 安装过程中常见的问题 测试推荐环 ...
- WCF 一步一步 发布 WCF服务 到 IIS (图)
WCF 一步一步 发布 WCF服务 到 IIS (图) 使用VS自带的WCFSVCHost(WCF服务主机)发布WCF服务,时刻开发人员测试使用. 下面我们来看一下如何在IIS中部发布一个WCF服务. ...
- 一步一步学习IdentityServer3 (2)
下面就来做一个例子:IdentityServer3服务端的配置 VS2015创建一个MVC项目 IdrOAuth 用来授权的认证的站点
随机推荐
- 协程的async使用
async与launch一样都是开启一个协程,但是async会返回一个Deferred对象,该Deferred也是一个job async函数类似于 launch函数.它启动了一个单独的协程,这是一个轻 ...
- Linux 多进程服务配置 systemd
目录 Linux 多进程服务配置 systemd sysvinit和systemd 多进程保活 创建配置文件(设定重试次数) 多进程服务管理 链式启动(服务依赖) 指定关闭进程方式 - ExecSto ...
- 电子设备内幕:RAM和ROM小百科
大家好,我是知微. 在智能手机出现之前,大家对RAM和ROM这两个词都没什么概念.如今很多手机在宣传的时候,都会标明有多大的RAM(运行内存)和ROM(存储空间),因为这在很大程度上影响手机的使用流畅 ...
- Java 封装+构造器+this 小测试
1 package com.bytezero.account; 2 3 4 public class Account 5 { 6 private int id; //账号 7 private doub ...
- 磁盘 U盘找不到
及磁盘找不到了, 第一步: 看排线是否插好,稳当 第二步:在磁盘管理下面,磁盘是否还在,如果磁盘显示在,只是没有磁盘符 第三步:diskpart ,进入磁盘 其他的命令自己 查询 第四步:进入 CM ...
- 发布DDD脚手架到Maven仓库,IntelliJ IDEA 配置一下即可使用
作者:小傅哥 博客:https://bugstack.cn 项目:https://gaga.plus 沉淀.分享.成长,让自己和他人都能有所收获! 大家好,我是技术UP主,小傅哥. 这篇文章将帮助粉丝 ...
- FreeRTOS教程2 任务管理
1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...
- 启用reactRouter,让Navigator支持多页面
启用reactRouter,让Navigator支持多页面 当前系统就一个页面,感觉是时候让她晋级到多页面程序了. 网上此类教程,我只记录我需要的最小范围. 0.目标 整站由原来的一个页面,变成2个页 ...
- .Net接口版本管理与OpenApi
前言 作为开发人员,我们经常向应用程序添加新功能并修改当前的 Api.版本控制使我们能够安全地添加新功能而不会造成中断性变更.一个良好的 Api 版本控制策略可以清晰地传达所做的更改,并允许使用现有 ...
- LINQ 学习之路
一.为什么要使用 LINQ 要理解为什么使用 LINQ,先来看下下面的例子 例子:要统计字符串中每个字母出现的频率(忽略大小写),然后按照从高到低的顺序输出出现频率高于2次和其出现的的频率.如果用传统 ...