一、前言

本文仅针对操作系统为 CentOS 8 的环境下部署方法进行讲述。如有需要,后续将在其他文章中进行其他系统下的部署方式讲解。

二、准备工作

  1. 确保服务器已安装 docker。

    可以通过命令 docker -v 进行检查,如出现下图结果则表示已安装。

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

    • 目标 OS 选择 Linux容器生成类型 选择 Dockerfile,点击 确定按钮

    • 此时项目中会增加一个名为 Dockerfile 的配置文件。



      内容大致如下:

    • 打开项目 目录 PropertieslaunchSettings.json 文件



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

    • 需要注意的是Dockerfile文件中的 EXPOSE 后方的端口需要与 Properties\launchSettings.json 文件中的 ASPNETCORE_HTTP_PORTS 指定端端口一致,该端口在部署到 docker 后,将作为容器端口使用。

三、上传项目源码到服务器

上传代码到服务器的方式有很多,下面仅列举手动上传和从 git 克隆代码。

  • 手动上传文件

    利用工具 WinSCP 工具连接服务器后,上传文件。
  • 从 git 克隆代码

    进入服务器相关目录下,利用 git 命令 git clone [url] 进行代码克隆到服务器。

四、开始部署

  1. Dockerfile 文件移动到父级目录中。

  2. 打开命令行窗口,利用 cd [路径] 进入代码文件所在目录。

  3. 输入命令 ls 查看目录下文件,如下所示能看到 Dockerfile 文件

  4. 创建镜像

    命令:docker build -t 镜像名称:版本号 .

    参数:** -t 或 --tag **:用于指定镜像的名称和标签

    示例:docker build -t swaggersimpledocker:1.0 .

    等待操作完成后,可通过命令 docker images 查看 docker 中已存在的镜像

  5. 创建容器

    命令:docker run –name=容器名称 -p主机(宿主)端口:容器端口 -d 镜像名称:1.0

    参数:--name:容器名称;-p:指定端口映射,格式为:主机(宿主)端口:容器端口;-d:后台运行容器,并返回容器ID

    示例:docker run --name=swaggersimple -p 8080:8080 -d swaggersimple:1.0

  6. 查看容器信息

    输入命令: docker ps -a ,可查看如下结果:



    说明:状态(STATUS) 为 Up 则表示容器状态为 运行中Exited 表示 已停止

  7. 检查接口是否可以正常访问

    输入命令:curl http://192.168.16.128:8080/api/Test/appinfo查看是否存在返回结果。

结束语

docker 容器部署已作为当前主流部署方式,欢迎大家一起交流学习。 QQ:2289480980

一步一步实现 .NET 8 部署到 Docker的更多相关文章

  1. 一步一步学ROP之linux_x86篇

    一步一步学ROP之linux_x86篇 作者:蒸米@阿里聚安全 ​ 一.序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过 ...

  2. 一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)

    cocos2d-x 3.0发布有一段时间了,作为一个初学者,我一直觉得cocos2d-x很坑.每个比较大的版本变动,都会有不一样的项目创建方式,每次的跨度都挺大…… 但是凭心而论,3.0RC版本开始 ...

  3. 跟我一步一步开发自己的Openfire插件

    http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插 ...

  4. 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序

    原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...

  5. 一步一步学习SignalR进行实时通信_4_Hub

    原文:一步一步学习SignalR进行实时通信_4_Hub 一步一步学习SignalR进行实时通信\_4_Hub SignalR 一步一步学习SignalR进行实时通信_4_Hub 前言 创建Hub 配 ...

  6. 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域

    原文:一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 一步一步学习SignalR进行实时通信\_3_通过CORS解决跨域 SignalR 一步一步学习SignalR进行实时通信_3_ ...

  7. 一步一步理解 python web 框架,才不会从入门到放弃 -- 开始使用 Django

    背景知识 要使用 Django,首先必须先安装 Django. 下图是 Django 官网的版本支持,我们可以看到上面有一个 LTS 存在.什么是 LTS 呢?LTS ,long-term suppo ...

  8. jumpservice一步一步安装

    一步一步安装 (CentOS) 本文档旨在帮助用户了解各组件之间的关系, 生产环境部署建议参考 进阶安装文档 云服务器快速部署参考 极速安装 安装过程中遇到问题可参考 安装过程中常见的问题 测试推荐环 ...

  9. WCF 一步一步 发布 WCF服务 到 IIS (图)

    WCF 一步一步 发布 WCF服务 到 IIS (图) 使用VS自带的WCFSVCHost(WCF服务主机)发布WCF服务,时刻开发人员测试使用. 下面我们来看一下如何在IIS中部发布一个WCF服务. ...

  10. 一步一步学习IdentityServer3 (2)

    下面就来做一个例子:IdentityServer3服务端的配置 VS2015创建一个MVC项目 IdrOAuth 用来授权的认证的站点

随机推荐

  1. 小程序开发:app.vue检测更新时判断是否是朋友圈进入

    因为如果从朋友圈点进小程序来的,有些功能就用不了,所以需要判断下是否从朋友圈点进来的. 检查代码如下: checkScene() { // 判断场景值 如果是从分享到朋友圈再打开 就会有一些功能无法使 ...

  2. Java 多线程------多线程的创建(2),方式一:继承于Thread类

    1 package com.bytezero.threadexer; 2 3 /** 4 * 创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数 5 * 6 * 7 * ...

  3. docker 系列

    docker 系列 目录 docker 系列 一. docker 定义 1 nameSpnce 命名空间 2 cgroup 控制组 3 为什么使用容器 二. docker 安装 三 .docker 初 ...

  4. rst文件查看(Sphinx)

    reStructuredText ( RST . ReST 或 reST )是一种用于文本数据的文件格式,主要用于 Python 编程语言社区的技术文档. 在下载了别人的Python源文件里面有rst ...

  5. autohotkey 设置快捷键 设置光标位置 (ctrl + alt + Numpad0)

    autohotkey 设置快捷键 设置光标位置 (ctrl + alt + Numpad0) 原因 3个屏幕,所以鼠标设置的灵敏度非常高,经常就找不到鼠标在哪了. 设置个快捷键,让鼠标每次都初始化一个 ...

  6. 玩转Vue3之shallowRef和shallowReactive

    前言 Vue3 作为一款现代的 JavaScript 框架,引入了许多新的特性和改进,其中包括 shallowRef 和 shallowReactive.这两个功能在Vue 3中提供了更加灵活和高效的 ...

  7. c 语言默认什么编码

    C语言是没有编码的.它的编码就是平台的默认编码.比方说在windows 上汉字编码用gb2312 或者 说cp936(GBK一般的windows默认代码页,windows分为不同的代码页,可以查看一下 ...

  8. mybatis-plus处理blob字段

    转载自:www.javaman.cn 在 Spring Boot 项目中使用 MyBatis-Plus 处理 longblob 字段时,我们可以按照以下步骤进行操作.假设 longblob 存储的是字 ...

  9. 【开源库推荐】#2 AndroidUtilCode Android常用工具类大全(附API使用说明)

    Blankj/AndroidUtilCode: Android developers should collect the following utils(updating). Download Gr ...

  10. 5、Azure Devops之Azure Test Plans篇

    1.什么是Azure Test Plans Azure Test Plans是提供给团队测试人员,管理测试计划.测试套件.测试用例的部件.管理测试计划.测试用例的定义,包括请求类型定义.参数定义,执行 ...