在 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
-
使用
yum-config-manager
:这是yum-utils
包中的一个工具,用于管理yum
的仓库配置。它允许你添加、禁用或启用仓库,而无需直接编辑仓库配置文件(通常位于/etc/yum.repos.d/
目录下)。 -
添加Docker CE仓库:通过指定
--add-repo
选项和Docker CE的仓库URL(在这个例子中是https://download.docker.com/linux/centos/docker-ce.repo
) -
仓库URL:
https://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"]
需要修改的地方
-
项目路径:
- 确保在正确的目录中执行 Docker 构建命令。该目录应该包含发布后的应用程序文件。
-
DLL 文件名称:
- 将
YourAppName.dll
修改为您的 .NET Core 应用程序的实际 DLL 文件名。
- 将
4.构建和运行 Docker 镜像
步骤 4.1:创建项目目录并进入目录
- 确保在正确的目录中
cd /root/dotnetapp/NewsWebsite
- 构建 Docker 镜像
sudo docker build -t newswebsiteapp .
newswebsiteapp是项目名,这个自定义
- 运行 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:更新包索引并安装依赖包 先安装yum的扩展,yum-utils提供了一些额外的工具,这些工具可以执行比基本yum命令更复杂的任务 sudo yum install -y yum-utils sudo yum update -y #更新系统上已安装的所有软件包到最新…...

redis的学习(一):下载安装启动连接
简介 redis的下载,安装,启动,连接使用 nosql nosql,即非关系型数据库,和传统的关系型数据库的对比: sqlnosql数据结构结构化非结构化数据关联关联的非关联的查询方式sql查询非sql查询事务特性acidbase存…...
前端设计模式面试题汇总
面试题 1. 简述对网站重构的理解? 参考回答: 网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变UI的情况下,对网站进行优化, 在扩展的…...
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 中用于创建圆角边框。它可以接受一到四个值,这些值可以是长度值(如像素 px、em 等)或百分比(%)。当提供四个值时,它们分别对应于边框的左上角、右上角、右下角和左下角的圆角半径…...
【大数据专题】数据仓库
1. 简述数据仓库架构 ? 数据仓库的核心功能从源系统抽取数据,通过清洗、转换、标准化,将数据加载到BI平台,进而满足业 务用户的数据分析和决策支持。 数据仓库架构包含三个部分:数据架构、应用程序架构、底层设施 1&…...

go关于string与[]byte再学深一点
目标:充分理解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、属性系统:深度解析与应用
文章目录 一、属性系统:深度解析与应用1、定义属性2、属性系统的作用3、属性系统工作原理(1)Q_PROPERTY宏(2)moc 的作用(3)属性在元对象中的注册 4、获取与设置属性4.1、QObject::property()与Q…...

Docker核心技术:容器技术要解决哪些问题
云原生学习路线导航页(持续更新中) 本文是 Docker核心技术 系列文章:容器技术要解决哪些问题,其他文章快捷链接如下: 应用架构演进容器技术要解决哪些问题(本文)Docker的基本使用Docker是如何实…...
sklearn中的增量学习:特征提取的艺术
sklearn中的增量学习:特征提取的艺术 在机器学习领域,特征提取是构建有效模型的关键步骤。然而,并非所有数据集都适合一次性加载到内存中进行处理,尤其是在处理大规模数据集时。Scikit-learn(sklearn)提供…...

PostgreSQL 中如何处理数据的唯一性约束?
🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的唯一性约束?一、什么是唯一性约束二、为什么要设置唯一性约束…...

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

【数据分享】2013-2022年我国省市县三级的逐月SO2数据(excel\shp格式\免费获取)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000——2022年的省市县三级的逐月PM2.5数据和2013-2022年的省市县三级的逐月CO数据(均可查看之前的文章获悉详情)! 本次我们分享的是我国2013——2022年的省…...

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

volatile,最轻量的同步机制
目录 一、volatile 二、如何使用? 三、volatile关键字能代替synchronized关键字吗? 四、总结: 还是老样子,先来看一段代码: 我们先由我们自己的常规思路分析一下代码:子线程中,一直循环&…...

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

Mamba-yolo|结合Mamba注意力机制的视觉检测
一、本文介绍 PDF地址:https://arxiv.org/pdf/2405.16605v1 代码地址:GitHub - LeapLabTHU/MLLA: Official repository of MLLA Demystify Mamba in Vision: A Linear AttentionPerspective一文中引入Baseline Mamba,指明Mamba在处理各种高…...
语音识别标记语言(SSML):自动标识中文多音字
好的,以下是完整的实现代码,包括导入库、分词、获取拼音和生成 SSML 标记的全过程: import thulac from pypinyin import pinyin, Style# 初始化 THULAC thu1 thulac.thulac(seg_onlyTrue)# 测试文本 text "银行行长正在走行。"…...

排序算法与复杂度介绍
1. 排序算法 1.1 排序算法介绍 排序也成排序算法(Sort Algorithm),排序是将一组数据,依照指定的顺序进行排序的过程 1.2 排序的分类 1、内部排序: 指将需要处理的所有数据都加载到**内部存储器(内存&am…...

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

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...