一步一步实现 .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 用来授权的认证的站点
随机推荐
- [C++] 进程注入dll版
目录 前言 前提 原理 代码 一些问题 前言 这几天在弄进程注入的事情,一直做不出来直接的进程注入,也就是不要dll的注入.因为dll注入据说容易触发杀软,但是弄了两天没弄出来.代码明明不报错,目标进 ...
- Java --- 多线程 创建线程的方式四: 使用线程池
1 package bytezero.thread2; 2 3 import java.security.Provider; 4 import java.util.concurrent.Executo ...
- Java-- Arrays操纵数组的工具类
1 //操作数组的工具类 java.util.Arrays :操作数组的工具类 里面定义了很多操作数组的方法 2 public static void main(String[] args) 3 { ...
- MySQL面经总结
MySQL日志 MySQL日志系统 MySQL查询 菜鸟教程SQL内连接 exist和in区别 sql语句优化 MySQL索引 覆盖索引 索引类型:主键索引,二级索引(辅助索引):唯一索引,普通索引, ...
- Linux性能监控(一)-sar
sar是一个非常全面的一个分析工具,对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可以进行有效的分析.sar工具将对系统当前的状态进行取样,然后通过计算数据 ...
- axios post xml data方法
axios#request(config) axios#get(url[,config]) axios#delete(url[,config]) axios#head(url[,config]) ax ...
- 制作B站直播简介
本文只用于个人总结备份,如果对你有帮助就更好了. 准备工作 准备好简介要用的的背景图.头像图,上传到图床生成图片链接. 简介的内容可分为主播简介.直播时间.直播内容.联系方式,内容根据实际需要修改,需 ...
- TI工程师总结的判断ADS129x是否工作正常的方法步骤
当大多数 ADC 出现无响应时,可以通过一些基本的调试技术帮助验证器件是否仍然正常工作.以下是 ADS129x 器件出现无响应时需要采取的一些基本步骤: 为器件通电.然后探测器件电源引脚或最近的去耦电 ...
- chm之已取消到该网页的导航解决办法
1. 右键单击该 CHM 文件,然后单击"属性". 2. 单击"取消阻止"或者"解除锁定". 3. 双击此 .chm 文件以打开此文件.
- 三维模型3DTile格式轻量化压缩集群处理方法分析
三维模型3DTile格式轻量化压缩集群处理方法分析 在地理信息系统中,由于三维模型的数据密度和文件体积较大,因此需要进行轻量化和压缩处理.这里我们将对使用集群处理方法来实现3D Tiles数据的轻量化 ...