AspNetCoreapi 使用 Docker + Centos 7部署

好久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了。然后好长一段时间没有写了。

今天记录一下AspNetCore 部署Docker+Centos 7 这里说明一下:Docker 需要用Centos7版本的操作系统

这里模拟演示的是实战环境的部署,项目就是使用的实战中的项目

1:安装前准备

首先确保我们有一台Linux 服务器或者系统或者虚拟机,我使用的是虚拟机系统做的Centos 7的版本。然后确保网络是通的,最好能联通外网,因为我们在部署的过程须有很多的东西需要下载:

部署中使用的工具:secureCRT:链接Linux终端的服务器,

:XFTP5 :上传发布的文件

2:安装Docker 步骤如下:

使用:secureCRT链接上Linux 如下:

AspNetCoreapi 使用 Docker + Centos 7部署

Docker的官方文档:https://docs.docker.com/

Docker 分为社区版CE和企业版EE,CE是免费提供给开发者和小团体使用,企业版的是收费的,我这里选择使用的是社区版的。

步骤:如下

1.开始安装:首先执行命令安装所需的包:sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2

2.设置稳定的存储库:sudo yum-config-manager \ –add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

3.安装:sudo yum install docker-ce

4.启动:sudo systemctl start docker

5.验证是否成功: sudo docker version

6.安装结果:

AspNetCoreapi 使用 Docker + Centos 7部署

这里是官方安装过程:https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1

3:AspNetCore 镜像的选择与拉取

选择下载镜像前我们首先需要确定的是我们项目将要或者已经使用的是什么版本的项目框架,我们项目使用的是2.1;

AspNetCoreapi 使用 Docker + Centos 7部署

在下载镜像的时候我们可以事先给下载好镜像,也可以使用 Dockerfile 文件进行下载:

如果我们需要在Docker 容器中进行编译打包运行等操作的时候我们就需要安装完整的SDK了, 如果我们只是单纯的运行的话只需要安装运行时 aspnetcore-runtime就行:官方文档中也有明确的说明:

AspNetCoreapi 使用 Docker + Centos 7部署

拉取镜像有两种方式如下:

1.使用命令拉取镜像: docker pull microsoft/dotnet:2.1-sdk

AspNetCoreapi 使用 Docker + Centos 7部署

查看结果:docker images

AspNetCoreapi 使用 Docker + Centos 7部署

2.使用Dockerfile 文件拉取

新建新建文件去掉后缀名命名为:Dockerfile 编辑文件内容如下:请注意FROM 节点上也是咱们将要使用的镜像:下图箭头指向部分

AspNetCoreapi 使用 Docker + Centos 7部署

切换到Dockerfile 文件所在的目录下 执行命令 创建一个镜像

查看结果:

AspNetCoreapi 使用 Docker + Centos 7部署

这里有两个镜像 名为ESD镜像就是咱们的项目运行镜像了,但是我们没有准备任何将要运行的项目,所以此镜像是失败的,我们执行这一步证明了Docker 可以直接拉取项目运行的镜像。

执行命令对它进行删除: docker rmi esd(可以使用镜像的名称或者镜像的 ID进行删除)

AspNetCoreapi 使用 Docker + Centos 7部署

4:项目的部署:

首先在进行部署前我建议大家先看认真看一边官方有关Docker的网络配置

https://docs.docker.com/network/

一个新的项目如果不对项目的IP或端口进行任何改变的话 部署成功后默认监听的是80 端口,如下图所示:

AspNetCoreapi 使用 Docker + Centos 7部署

如果你不进行改变的话也就是说这个项目部署是就使用80端口了,在创建容器的时候重新指定的端口就访问不通了。

所以我首先改动了项目中的项目运行时监听的端口在项目文件Program添加代码如下:

.UseKestrel().UseUrls(“http://*:8091”) // 在所有网络接口上监听端口 8091

AspNetCoreapi 使用 Docker + Centos 7部署

改好后进行发布:发布完成后上传到服务器Dockerfire 文件所在的目录中

对Dockerfire 进行修改

AspNetCoreapi 使用 Docker + Centos 7部署
表示当前创建的镜像所依赖的基础镜像

  FROM microsoft/dotnet:2.1-sdk

  # 表示当前容器的工作目录 将要运行的web程序放在容器中的那个目录下,没有会自动创建

  WORKDIR /app

  # 设置对外暴露的端口,不设置默认为 80

  EXPOSE  8091

  # 表示会把当前目录下的Web程序文件 拷贝到 容器的 /app 文件下,

  COPY  . .

  # 将要执行的命令

  CMD ["dotnet", "lenovo.core.ESDDB.WebApi.dll"]

使用命令运行该Dockerfire 文件创建容器

命令: docker build -t esdapi .

这个命令需要注意的是 镜像名称 不要使用大写 镜像名称后的 “点”不要忽略了

AspNetCoreapi 使用 Docker + Centos 7部署

创建容器:

命令:docker run –name esdapi -d -p 8091:8091 esdapi

结果如图所示:

AspNetCoreapi 使用 Docker + Centos 7部署

查看结果:docker ps

AspNetCoreapi 使用 Docker + Centos 7部署

这里注意的是在查看结果的时候如果没有容器在运行则使用 docker ps -a 命令查看容器找到容器的ID 使用 docker logs +容器ID 查看容器日志信息找原因。

外部访问部署结果:

AspNetCoreapi 使用 Docker + Centos 7部署

大家对直接 考软考高级,以及PMP 证书感兴趣的话 可以加群 815186020 目前机构正在搞活动优惠很多,说 “乐途” 介绍的应该会有优惠

Original: https://www.cnblogs.com/yan8shi/p/10509579.html
Author: 黄衍仕
Title: AspNetCoreapi 使用 Docker + Centos 7部署

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/598962/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 万恶的Jackson

    一、吐槽 已经是凌晨12点了我还是睡不着我所有的实体类时间用的j8的LocalDateTime这就导致一个问题:jackson不能序列化时间,因为它不支持j8的Api,让我添加 j…

    数据库 2023年6月6日
    078
  • 粗粒度服务的执行时间统计算法实现及问题推广

    3.1 算法一:逐一合并算法 3.1.1 算法描述 如图3.我们先将所有的时间片段按照起始时刻排序,后面的处理过程即依次判定相邻两个时间片段的三种关系,并将统计时间进行合并,合并的…

    数据库 2023年6月14日
    0106
  • Python–module–OS

    csharp;gutter:true; import os a = os.getcwd() # 获取当前的操作目录 b = os.chdir("C:\Users&quot…

    数据库 2023年6月9日
    090
  • python-memcached学习笔记

    介绍: memcached是免费、开源、高性能、分布式内存对象的缓存系统(键/值字典),旨在通过减轻数据库负载加快动态web应用程序的使用。 数据类型:只用一种字符串类型 1:安装…

    数据库 2023年6月6日
    078
  • Redis集群(二)哨兵模式

    一、作用和架构 1. 作用 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入。哨兵的核心功能是 主节点的自动故障转移。下面是Redis官方文档对于哨…

    数据库 2023年6月11日
    090
  • Java面向对象程序设计(2)封装,继承和多态

    面向对象的三大特征是:封装,继承和多态 访问修饰符 java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围) : 访问级别 访问控制修饰符 同类 同包 …

    数据库 2023年6月16日
    070
  • 23种设计模式之命令模式

    文章目录 概述 命令模式的优缺点 命令模式的应用场景 命令模式的结构和实现 * 模式的结构 模式的实现 总结 ; 概述 命令模式(Command Pattern)是一种数据驱动的设…

    数据库 2023年6月6日
    0126
  • 商企网络拓扑的搭建

    前段时间因为工作项目需要模拟搭建客户环境的网络拓扑结构用于验证某款网关产品的功能, 因为不是专业的网管,对于计算机网络的实践也相对较少,所以在组件网络拓扑时遇到了不少的坑,做下记录…

    数据库 2023年6月6日
    0103
  • SpringMvc(三)- CRUD

    1、springMvc的form表单 1.1 标签 1.2 标签 使用springMvc的form表单,快速开发表单及数据自动回显; 原理:在 数据模型中添加一个 参数名为 com…

    数据库 2023年6月16日
    096
  • BigDecimal 设置小数位数、小数比例转换整数

    控制小数位数 DecimalFormat decimalFormat = new DecimalFormat("0.00"); decimalFormat.fo…

    数据库 2023年6月6日
    087
  • 容器化|自建 MySQL 集群迁移到 Kubernetes

    如果你有自建的 MySQL 集群,并且已经感受到了云原生的春风拂面,想将数据迁移到 Kubernetes 上,那么这篇文章可以给你一些思路。 文中将自建 MySQL 集群数据,在线…

    数据库 2023年6月11日
    075
  • Mybatis缓存机制

    MyBatis是常见的 Java数据库访问层框架。在日常工作中,多数情况下是使用 MyBatis的默认缓存配置减轻数据库压力,提高数据库性能,但是 MyBatis缓存机制有一些不足…

    数据库 2023年6月11日
    0124
  • Spring Bean的作用域

    Spring Bean的作用域或者说范围主要有五种: 作用 描述 singleton 在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的…

    数据库 2023年6月16日
    062
  • mysql解压版简洁式本地配置方式

    1. 设置全局变量 解压mysql压缩包到指定位置, 然后配置全局变量, 在 path 中添加全局变量, 值为 mysql 根目录下 bin 目录路径, 比如: D:\code_s…

    数据库 2023年6月14日
    074
  • Mysql的知识梳理

    数据准备: –建表 create table customer_jia(CID int(4), Cname varchar(20), Csex varchar(2), …

    数据库 2023年6月16日
    083
  • MySQL索引详解,面试必问

    1、什么是索引? 索引是帮助MySQL高效获取数据的数据结构(有序)。 除了数据之外,数据库系统还维护满足特定查找算法的数据结构,这些查找算法以某种方式引用(指向)数据,从而可以在…

    数据库 2023年5月24日
    0112
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球