当前位置: 首页 > news >正文

在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1

1. 安装 Docker

步骤 1.1:更新包索引并安装依赖包

先安装yum的扩展,yum-utils提供了一些额外的工具,这些工具可以执行比基本yum命令更复杂的任务

sudo yum install -y yum-utils

sudo yum update -y  #更新系统上已安装的所有软件包到最新版本#这条命令用于安装yum-utils、device-mapper-persistent-data和lvm2这三个软件包。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 

步骤 1.2:添加 Docker 官方仓库

用于添加Docker CE(Community Edition,社区版)的软件仓库到系统的yum配置中。这意味着你可以通过yum(或其前端如dnf在CentOS 8及更高版本中)来安装、更新和管理Docker CE软件包。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

  1. 使用yum-config-manager:这是yum-utils包中的一个工具,用于管理yum的仓库配置。它允许你添加、禁用或启用仓库,而无需直接编辑仓库配置文件(通常位于/etc/yum.repos.d/目录下)。

  2. 添加Docker CE仓库:通过指定--add-repo选项和Docker CE的仓库URL(在这个例子中是https://download.docker.com/linux/centos/docker-ce.repo

  3. 仓库URLhttps://download.docker.com/linux/centos/docker-ce.repo是一个指向Docker CE仓库配置文件的URL。当你执行这个命令时,yum-config-manager会从该URL下载仓库配置文件,并将其保存到你的/etc/yum.repos.d/目录下。

步骤 1.3:安装 Docker CE


sudo yum install -y docker-ce docker-ce-cli containerd.io

Docker CE提供了完整的容器化平台,包括Docker引擎、CLI(命令行界面)工具、容器运行时组件(如containerd.io)等,支持构建、发布和运行容器化应用。

4. 手动下载 Docker 仓库文件(如果上面代码报错)

手动下载 Docker 仓库文件并将其放入正确的位置:


sudo curl -L https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

步骤 1.4:启动 Docker 并设置开机自启动


sudo systemctl start docker
sudo systemctl enable docker

步骤 1.5:验证 Docker 安装

sudo docker -v

 步骤 2.1:发布.net core3.1项目(windows)

在解决方案、找到项目目录

选择发布到文件夹

点击打开文件夹 ,默认发布到项目文件的bin 下面的Release\netcoreapp3.1\publish中是编译后的项目文件

3. 创建 Dockerfile

步骤 3.1:创建项目目录并进入目录

mkdir dotnetapp cd dotnetapp

将编译后的项目放到linux目录中

 

步骤 3.2:创建 Dockerfile

1. 创建或更新 Dockerfile

在包含 netcoreapp3.1 文件夹的目录下创建或更新 Dockerfile:

使用 cat 命令创建 Dockerfile 并添加以下内容:

cd /www/wwwroot/donetapp/NewsWebsite
sudo bash -c 'cat > Dockerfile <<EOF
# 使用官方的 ASP.NET Core 运行时作为基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80# 将发布的文件复制到基础镜像中
COPY netcoreapp3.1/ .
ENTRYPOINT ["dotnet", "NewsWebsite.dll"]
EOF'

模版:

# 使用官方的 ASP.NET Core 运行时作为基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80# 将发布的文件复制到基础镜像中
COPY . .
ENTRYPOINT ["dotnet", "YourAppName.dll"]

 

需要修改的地方

  1. 项目路径

    • 确保在正确的目录中执行 Docker 构建命令。该目录应该包含发布后的应用程序文件。
  2. DLL 文件名称

    • YourAppName.dll 修改为您的 .NET Core 应用程序的实际 DLL 文件名。

4.构建和运行 Docker 镜像

步骤 4.1:创建项目目录并进入目录

  1. 确保在正确的目录中
cd /root/dotnetapp/NewsWebsite
  1. 构建 Docker 镜像
sudo docker build -t newswebsiteapp .

 newswebsiteapp是项目名,这个自定义

  1. 运行 Docker 容器
sudo docker run -d -p 8080:80 newswebsiteapp

这条命令的作用是以分离模式(在后台)启动一个名为newswebsiteapp的容器实例,将容器内的80端口映射到宿服务器主机的8080端口上,以便可以通过宿主机的8080端口访问容器内的Web服务。 (记得开启8080端口)

5. 管理 Docker 容器

你可以使用以下命令来管理 Docker 容器:

  • 查看运行的容器:

    sudo docker ps

  • 停止一个容器:

​​​​​​​sudo docker stop <container_id>
  • 删除一个容器:

    sudo docker rm <container_id>

开启端口:

在 CentOS 7 中打开防火墙上的端口 5000 以允许外部访问,可以使用 firewalld 工具。以下是详细步骤:

1. 检查 firewalld 状态

首先,检查 firewalld 是否正在运行:

sudo systemctl status firewalld

如果 firewalld 没有运行,可以启动它:

sudo systemctl start firewalld

2. 开放端口 5000为例

使用以下命令在 firewalld 中开放端口 5000:

 
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent

解释:

  • --zone=public:指定要修改的区域(通常是 public 区域)。
  • --add-port=5000/tcp:添加 TCP 端口 5000。
  • --permanent:永久添加规则。

3. 重新加载 firewalld

应用更改并重新加载 firewalld 配置:

sudo firewall-cmd --reload

4. 验证端口是否开放

使用以下命令验证端口是否成功开放:

sudo firewall-cmd --zone=public --list-ports

确保输出中包含 5000/tcp

相关文章:

在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1

1. 安装 Docker 步骤 1.1&#xff1a;更新包索引并安装依赖包 先安装yum的扩展&#xff0c;yum-utils提供了一些额外的工具&#xff0c;这些工具可以执行比基本yum命令更复杂的任务 sudo yum install -y yum-utils sudo yum update -y #更新系统上已安装的所有软件包到最新…...

redis的学习(一):下载安装启动连接

简介 redis的下载&#xff0c;安装&#xff0c;启动&#xff0c;连接使用 nosql nosql&#xff0c;即非关系型数据库&#xff0c;和传统的关系型数据库的对比&#xff1a; sqlnosql数据结构结构化非结构化数据关联关联的非关联的查询方式sql查询非sql查询事务特性acidbase存…...

前端设计模式面试题汇总

面试题 1. 简述对网站重构的理解&#xff1f; 参考回答&#xff1a; 网站重构&#xff1a;在不改变外部行为的前提下&#xff0c;简化结构、添加可读性&#xff0c;而在网站前端保持一致的行为。也就是说是在不改变UI的情况下&#xff0c;对网站进行优化&#xff0c; 在扩展的…...

linux(CentOS、Ubuntu)安装python3.12.2环境

1.下载官网Python安装包 wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz 1.1解压 tar -xf Python-3.12.2.tar.xz 解压完后切换到Python-3.12.2文件夹(这里根据自己解压的文件夹路径) cd /usr/packages/Python-3.12.2/ 1.2升级软件包管理器 CentOS系…...

CSS 中border-radius 属性

border-radius 属性在 CSS 中用于创建圆角边框。它可以接受一到四个值&#xff0c;这些值可以是长度值&#xff08;如像素 px、em 等&#xff09;或百分比&#xff08;%&#xff09;。当提供四个值时&#xff0c;它们分别对应于边框的左上角、右上角、右下角和左下角的圆角半径…...

【大数据专题】数据仓库

1. 简述数据仓库架构 &#xff1f; 数据仓库的核心功能从源系统抽取数据&#xff0c;通过清洗、转换、标准化&#xff0c;将数据加载到BI平台&#xff0c;进而满足业 务用户的数据分析和决策支持。 数据仓库架构包含三个部分&#xff1a;数据架构、应用程序架构、底层设施 1&…...

go关于string与[]byte再学深一点

目标&#xff1a;充分理解string与[]bytes零拷贝转换的实现 先回顾下string与[]byte的基本知识 1. string与[]byte的数据结构 reflect包中关于字符串的数据结构 // StringHeader is the runtime representation of a string.type StringHeader struct {Data uintptrLen int} …...

Qt 实战(7)元对象系统 | 7.4、属性系统:深度解析与应用

文章目录 一、属性系统&#xff1a;深度解析与应用1、定义属性2、属性系统的作用3、属性系统工作原理&#xff08;1&#xff09;Q_PROPERTY宏&#xff08;2&#xff09;moc 的作用&#xff08;3&#xff09;属性在元对象中的注册 4、获取与设置属性4.1、QObject::property()与Q…...

Docker核心技术:容器技术要解决哪些问题

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;容器技术要解决哪些问题&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题&#xff08;本文&#xff09;Docker的基本使用Docker是如何实…...

sklearn中的增量学习:特征提取的艺术

sklearn中的增量学习&#xff1a;特征提取的艺术 在机器学习领域&#xff0c;特征提取是构建有效模型的关键步骤。然而&#xff0c;并非所有数据集都适合一次性加载到内存中进行处理&#xff0c;尤其是在处理大规模数据集时。Scikit-learn&#xff08;sklearn&#xff09;提供…...

PostgreSQL 中如何处理数据的唯一性约束?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的唯一性约束&#xff1f;一、什么是唯一性约束二、为什么要设置唯一性约束…...

VAE论文阅读

在网上看到的VAE解释&#xff0c;发现有两种版本&#xff1a; 按照原来论文中的公式纯数学推导&#xff0c;一般都是了解生成问题的人写的&#xff0c;对小白很不友好。按照实操版本的&#xff0c;非常简单易懂&#xff0c;比如苏神的。但是却忽略了论文中的公式推导&#xff…...

【数据分享】2013-2022年我国省市县三级的逐月SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000——2022年的省市县三级的逐月PM2.5数据和2013-2022年的省市县三级的逐月CO数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享的是我国2013——2022年的省…...

【Jmeter】记录一次Jmeter实战测试

Jmeter实战 1、需求2、实现2.1、新建线程组2.2、导入参数2.3、新建HTTP请求2.4、添加监听器2.5、结果 1、需求 查询某个接口在高并发场景下的响应时间(loadtime)&#xff0c;需求需要响应在50ms以内&#xff0c;接下来用Jmeter测试一下 Jmeter安装见文章《Jemeter安装教程&am…...

volatile,最轻量的同步机制

目录 一、volatile 二、如何使用&#xff1f; 三、volatile关键字能代替synchronized关键字吗&#xff1f; 四、总结&#xff1a; 还是老样子&#xff0c;先来看一段代码&#xff1a; 我们先由我们自己的常规思路分析一下代码&#xff1a;子线程中&#xff0c;一直循环&…...

在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上释放IP地址并重新获取新IP地址的方法各有不同。以下是针对每种操作系统的详细步骤&#xff1a; Linux 使用DHCP客户端&#xff1a;大多数Linux发行版都使用DHCP&#xff08;动态主机配置协议&#xff09;来自动获取IP地址…...

Mamba-yolo|结合Mamba注意力机制的视觉检测

一、本文介绍 PDF地址&#xff1a;https://arxiv.org/pdf/2405.16605v1 代码地址&#xff1a;GitHub - LeapLabTHU/MLLA: Official repository of MLLA Demystify Mamba in Vision: A Linear AttentionPerspective一文中引入Baseline Mamba&#xff0c;指明Mamba在处理各种高…...

语音识别标记语言(SSML):自动标识中文多音字

好的&#xff0c;以下是完整的实现代码&#xff0c;包括导入库、分词、获取拼音和生成 SSML 标记的全过程&#xff1a; import thulac from pypinyin import pinyin, Style# 初始化 THULAC thu1 thulac.thulac(seg_onlyTrue)# 测试文本 text "银行行长正在走行。"…...

排序算法与复杂度介绍

1. 排序算法 1.1 排序算法介绍 排序也成排序算法&#xff08;Sort Algorithm&#xff09;&#xff0c;排序是将一组数据&#xff0c;依照指定的顺序进行排序的过程 1.2 排序的分类 1、内部排序&#xff1a; 指将需要处理的所有数据都加载到**内部存储器&#xff08;内存&am…...

Kafka介绍及Go操作kafka详解

文章目录 Kafka介绍及Go操作kafka详解项目背景解决方案面临的问题业界方案ELKELK方案的问题日志收集系统架构设计架构设计组件介绍将学到的技能消息队列的通信模型点对点模式 queue发布/订阅 topicKafka介绍Kafka的架构图工作流程选择partition的原则ACK应答机制Topic和数据日志…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...