70、微服务保姆教程(十三)Docker容器详细讲义
一、关于Docker
1.1为什么要用docker?
随着开发的项目越来越复杂,软件越来越多,服务器越来越多,我们在开发和部署的时候会遇到很多问题,比如:
1.不同的应用程序可能会有不同的应用环境,比如Java开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如tomcat和Apache访问端口冲突。这个时候你就要隔离Java开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。3.我们部署一台服务器就需要安装和配置很多环境,在分布式环境中,需要部署很多台,每台都完全安装和部署一次太麻烦。
那么怎么解决呢?我们可以用Docker!
Docker可以把开发环境直接封装转移给运维,运维直接部署封装后的环境就可以,而且docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
1.2 什么是docker
docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。
1.3 docker的思想
1.Docker采用集装箱思想意思是将需要的内容和环境打包成一个个集装箱,所有的集装箱都可以上传到码头上,当有人需要某个环境时,就从码头上拉取这个集装箱就可以。码头的概念类似Maven仓库。2.Docker的隔离型docker在运行集装箱中的内容时,会在linux内核中,单独的开辟一个单元,不会影响到其它程序。3.Docker的标准化docker提供了一系列的命令,帮助我们去创建,拉取集装箱。docker还提供了Rest的Api,衍生出了很多的图形化界面,Rancher。
1.4 底层原理
docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。LXC不是硬件的虚拟化,而是Linux内核的级别的虚拟机化,相对于传统的虚拟机,节省了很多硬件资源。NameSpaceLXC是利用内核namespace技术,进行进程隔离。其中pid, net, ipc, mnt, uts 等namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开。Control GroupLXC利用的宿主机共享的资源,虽然用namespace进行隔离,但是资源使用没有收到限制,这里就需要用到Control Group技术,对资源使用进行限制,设定优先级,资源控制等。
1.5 版本支持
在CentOS6.8是可以支持docker,但是有些特性无法使用,因此至少使用3.8的内核版本,建议是使用3.10版本以上。国内生产环境很多都是使用CentOS,所以一般使用CentOS7即可。
当然如果是Ubuntu/Debian/Deepin系列的发行版本也是支持的。
二、 Docker安装和配置
2.1 环境准备
操作系统:CentOS
软件源:阿里云镜像(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)
2.2 安装docker
1、安装依赖
docker依赖于系统的一些必要的工具,可以提前安装。
yum -y install yum-utils device-mapper-persistent-data lvm2
2、添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker-ce
yum clean all #yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。yum makecache fast #这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度yum -y install docker-ce
4、启动服务
通过systemctl启动服务
systemctl start docker
5、查看安装版本
这样子就安装成功了,启动服务以后可以使用docker version查看一下当前的版本。
docker version
6、设置开机自动启动
systemctl enable docker
相关文章:
70、微服务保姆教程(十三)Docker容器详细讲义
一、关于Docker 1.1为什么要用docker? 随着开发的项目越来越复杂,软件越来越多,服务器越来越多,我们在开发和部署的时候会遇到很多问题,比如: 1.不同的应用程序可能会有不同的应用环境,比如Java开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都…...
2025年5月-信息系统项目管理师高级-软考高项-成本计算题
成本计算题挣值分析、成本计算题如何学?1、PV,EV,AC需要理解,根据题目给出的一些个条件需要求得这些值;2、CV,SV,CPI,SPI公式必须记住,需要根据求得的值判断项目的进度和成本的执行情况&#x…...
【BotSharp详细介绍——一步步实现MCP+LLM的聊天问答实例】
BotSharp详细介绍——一步步实现MCPLLM的聊天问答实例 一、MCP原理介绍二、创建BotSharp的项目,实现LLM推理机器人1、新建一个 解决方案,结构如下:2、先看下 MyWeatherPlugin3、创建MyWeatherMcpAPI 三、创建 MCP Server1、添加引用2、添加工…...
[Linux性能优化] 线程卡顿优化。Linux加入USB(HID)热插拔线程占用CPU优化。Linux中CPU使用率过高优化
文章目录 [Linux性能优化] 线程卡顿优化。一、问题定位:CPU 资源分析二、线程卡顿现场复现线程优化前图片线程优化后图片 [Linux性能优化] 线程卡顿优化。 一、问题定位:CPU 资源分析 线程卡顿通常与 CPU 资源竞争、线程调度异常相关,第一步…...
鸿蒙OSUniApp 开发的文件上传与下载功能#三方框架 #Uniapp
使用 UniApp 开发的文件上传与下载功能 前言 在移动应用开发中,文件上传与下载是非常常见且重要的功能需求。无论是上传用户头像、提交表单附件,还是下载资源文件、缓存图片,这些需求几乎存在于每一个成熟的应用中。UniApp 作为一个跨平台开…...
【MySQL】基础知识
MySQL(一)基础知识 MySQL 一、结构 1.客户端 2.服务器 分布式系统 二、存储 1.空间 1.1内存 1.1.1速度 1.1.2稳定性 1.1.3大小 1.1.4使用 1.2硬盘 1.2.1速度 1.2.2稳定性 1.2.3大小 1.2.4【Java学习】反射-CSDN博客 2.体系 表-数据库-服务器 3.特点 3.1…...
产品销量数据爬虫通用模板
最近遇到各行各业的需要爬取销售数据,每次写一个教程相对麻烦,所以思前考后我还是觉得写一个通用模板更适合。所以模板需要足够的灵活性,让用户能够自定义选择器。比如,产品标题、价格、销量的CSS选择器可能因网站而异,…...
一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】
文章目录 前言一、Three.js材质系统基础1.1 为什么选择PBR材质?1.2 关键参数解析 二、不同类型皮革的材质配置2.1 牛皮材质实现2.2 羊皮材质实现2.3 仿皮材质实现 三、高级贴图技术3.1 贴图制作流程3.2 组合贴图实战 四、性能优化策略4.1 贴图压缩技术4.2 材质共享4…...
mysql读写分离
一、读写分离原理 客户端连接代理层,代理层(中间件)来实现读操作给从服务器,写操作给主服务器。 二、示例 mycat实现读写分离 读写分离在主从复制的基础上 1客户机1代理1主2从1、网络主 192.168.10.101从1 192.168.10.102从2 …...
Java集合框架
集合 概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能 和数组的区别 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 位置:java.util.* Collection体…...
salesforce如何导出所有字段
在 Salesforce 中,导出所有字段信息(包括字段名、API 名、字段类型、是否可报表、是否可搜索等)通常不是一个“一键完成”的操作,但可以通过几种方法实现。以下是常用的几种方法: ✅ 方法一:使用 Salesforc…...
一招解决Tailwindcss4.x与其他库样式冲突问题
当项目中引入tailwindcss,并与其他UI库混用时,可能会出现样式冲突问题,因为tailwindcss重置了一些基础样式,例如:引入tailwindcss后,原生button按钮没有了默认的样式。 在老版本中解决这个问题,…...
[Harmony]封装一个可视化的数据持久化工具
1.添加权限 在module.json5文件中添加权限 // 声明应用需要请求的权限列表 "requestPermissions": [{"name": "ohos.permission.DISTRIBUTED_DATASYNC", // 权限名称:分布式数据同步权限"reason": "$string:distrib…...
关于AI人工智能的知识图谱简介
人工智能是计算机科学的一个重要领域,旨在理解和构建智能行为。人工智能可以被划分为多个子领域或分支,包括机器学习、深度学习、自然语言处理(Natural Language Processing,NLP)、计算机视觉(Computer Vis…...
uniapp,小程序中实现文本“展开/收起“功能的最佳实践
文章目录 示例需求分析实现思路代码实现1. HTML结构2. 数据管理3. 展开/收起逻辑4. CSS样式 优化技巧1. 性能优化2. 防止事件冒泡3. 列表更新处理 实际效果总结 在移动端应用开发中,文本内容的"展开/收起"功能是提升用户体验的常见设计。当列表项中包含大…...
RabbitMQ 消息模式实战:从简单队列到复杂路由(一)
RabbitMQ 初相识 在当今分布式系统大行其道的技术领域中,消息队列作为实现系统间异步通信、解耦以及流量削峰的关键组件,发挥着不可或缺的作用。而 RabbitMQ,无疑是消息队列领域中一颗耀眼的明星。自 2007 年诞生以来,RabbitMQ 凭…...
阿里云ECS部署Dify
一:在ECS上面安装Docker 关防火墙 sudo systemctl stop firewalld 检查防火墙状态 systemctl status firewalld sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里镜像源,安装并启动docker [base] nameCentOS-$releas…...
Missashe考研日记—Day37-Day43
Missashe考研日记—Day37-Day43 写在面前 本系列博客用于记录博主一周的学习进度,具体知识总结在目前已有的笔记中: 1.高数强化学习笔记2.计网复习笔记 本周五到周日有其他安排,所以今天就把这一周的先更新了。 专业课408 这周学了计网的…...
DB-GPT扩展自定义app配置说明
简介 文章主要介绍了如何扩展一个自定义app插件,这里先看下生成效果,生成的内容其实还是有问题的,后续博主会调整提示词看看能不能优化生成效果 修改代码 代码详情 # chat_di是从chat_normal复制过来的,这里只改了提示词 from d…...
2025年11月软考各科目难度及适合人群分析
2025上半年软考考试报名已结束,不少小伙伴已经在咨询下半年的考试科目了,今天就给大家推荐几个好考的科目。 一、2025下半年软考考试科目 2025下半年软考考试时间为11月8日至11日。 根据计考办发布的《关于2025年度计算机技术与软件专业技术资格&…...
vue异步导入
vue的异步导入 大家开发vue的时候或多或少路由的异步导入 component: () >import(“/views/A_centerControl/intelligent-control/access-user-group”),当然这是路由页面,那么组件也是可以异步导入的 使用方式 组件的异步导入非常简单,主要是一个…...
[IMX] 03.时钟树 - Clock Tree
目录 1.PLL 时钟源 2.Clock Tree 时钟树 3.ARM 内核时钟 3.1.频率设置 - CCM_ANALOG_PLL_ARMn 3.2.时钟分频 - CCM_CACRR 3.3.时钟源选择 - CCM_CCSR 3.4.修改 ARM 内核时钟 4.PFD 时钟 4.1.PLL2_PFD 频率 - CCM_ANALOG_PFD_528n 4.2.PLL3_PFD 频率 - CCM_ANALOG_PFD…...
低功耗实现方法思路总结
1.硬件选型最重要,比如stm 8l ,MSP430,瑞萨rl78,lpc11等 2.开发仿真务必使用高精度万用表如fluke 3.在整体规划层面,避免引脚未配置的浮空状态 a)在设计开发层面,对于使用的信号,使用上下拉电阻或者推挽…...
广州SMT贴片技术优势与工艺解析
内容概要 作为电子制造领域的关键技术,广州SMT贴片工艺凭借其高精度与高效性,已成为现代电子装配的核心支撑。本文通过系统性梳理表面贴装技术(SMT)的全流程,重点聚焦广州地区在该领域的独特技术优势。内容涵盖从焊膏…...
乡村地区无人机医药配送路径规划与优化仿真
本代码意在通过对无人机路径规划和载具选择进一步帮助乡村振兴,提高农村卫生条件,让患者足不出户就可享受到医疗服务,旨在完善乡村基础设施建设,积极响应国家“十四五”规划的号召。 先选择适合在该地区配送医药物资环境下的载具材…...
AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)
弃用 这里我没有走通EB CLI方式部署。 问题 最近又加入了AWS项目组,又要再次在AWS云上面部署Spring服务,我这里使用的使用AWS中国云。需要使用AWS Elastic Beanstalk部署一个极简Spring工程。 EB CLI安装 安装EB CLI之前需要先在本地安装好Git&…...
[训练和优化] 3. 模型优化
👋 你好!这里有实用干货与深度分享✨✨ 若有帮助,欢迎: 👍 点赞 | ⭐ 收藏 | 💬 评论 | ➕ 关注 ,解锁更多精彩! 📁 收藏专栏即可第一时间获取最新推送🔔…...
element-ui的el-cascader增加全选按钮实现(附源码)
最近遇到了在级联选择器上添加全选框的需求 ,但是项目使用的是Vue2 Element UI的架构,而我们都知道Element UI提供的级联选择器el-cascader是不支持全选框的,而我又没有在网上找到适合我项目的实现,索性自己实现一个组件…...
OpenCV人脸识别EigenFace算法、案例解析
文章目录 前言一、EigenFace 核心原理二、Python 实战:手把手搭建 EigenFace 识别系统1. 环境准备2. 代码实现与步骤详解3. 加载数据集函数4. 训练EigenFace模型函数5. 预测函数6.主程序部分7. 可视化结果8. 代码分步解读 三、优化技巧四、总结 前言 在人脸识别领域…...
Python模块化编程
Python模块化编程 记得我刚学Python那会儿,特别喜欢把所有代码都写在一个文件里。直到有一天,我的项目膨胀到了2000多行代码,每次修改都要翻半天…这才痛定思痛,开始研究模块化编程。今天就跟大家聊聊这个让代码变得优雅的魔法。…...
Java对象的GC回收年龄的研究
目录 1、介绍 2、内存结构 2.1、普通对象 2.2、数组对象 2.3、数组长度作用 2.4、为什么 age 用 4 位? 3、对象头组成 3.1、Mark Word(标记字段) 3.2、Class Pointer(类指针) 4、GC 发生的位置 4.1、新生代…...
IT系统的基础设施:流量治理、服务治理、资源治理,还有数据治理。
文章目录 引言I IT系统的基础设施流量治理、服务治理、资源治理,还有数据治理。开发语言的选择数据治理(监控系统):整体运维的数据其他II 基础知识的重要性第一,知道原理第二,当遇到一些比较难解的问题时,基础知识就会派上用场。例子III 快速学会一门编程语言把语言照着…...
SpringBoot应用启动过程
Spring 应用抽象 Springboot 是一个用来快速创建 Spring 应用的微服务框架,启动引导器是org.springframework.boot.SpringApplication 这个类,每个 SpringApplication 实例就表示一个 Spring 应用的启动类;Spring 应用生命周期包括创建、启动…...
傻子学编程之——Java并发编程的问题与挑战
傻子学编程之——Java并发编程的问题与挑战 Java并发编程能让程序跑得更快,但也像走钢丝一样充满风险。本文用最直白的语言和代码示例,带你直面并发编程的四大「致命陷阱」,并给出解决方案。 一、资源竞争:多个线程打架怎么办&am…...
groovy 如何遍历 postgresql 所有的用户表 ?
在 Groovy 中遍历 PostgreSQL 所有用户表,你可以使用 JDBC 连接数据库并执行 SQL 查询。以下是一个完整的示例: Groovy 代码示例 import groovy.sql.Sqldef config [url: jdbc:postgresql://localhost:5432/your_database,user: your_username,passwo…...
CPU cache基本原理
CPU cache基本原理 存储器层次结构存储器层次结构中的缓存高速缓存存储器直接映射高速缓存组相联高速缓存全相联高速缓存 多核 CPU 下缓存问题内存的读写操作流程数据一致性与并发控制 高速缓存(cache)是一个小而快速地存储设备,它作为存储在…...
【Java学习笔记】【第一阶段项目实践】零钱通(面向过程版本)
零钱通(面向过程版本) 需求分析 1. 需要实现的功能 (1) 收益入账 (2) 消费 (3 )查看明细 (4 )退出系统 2. 代码优化部分 (1) 对用户输入 4 退出时,给出提示 “你确定要退出吗?y/n”,必须输入正确的 y/n,…...
Cursor无法使用C/C++调试的解决办法
背景 这几天在二开ffmpeg,发现用cursor无法使用cppdbg进行调试,只能上机gdb,比较麻烦。 配置文件 // launch.json {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// Fo…...
VSTO(C#)Excel开发进阶2:操作图片 改变大小 滚动到可视区
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 入…...
嵌入式自学第二十二天(5.15)
顺序表和链表 优缺点 存储方式: 顺序表是一段连续的存储单元 链表是逻辑结构连续物理结构(在内存中的表现形式)不连续 时间性能, 查找顺序表O(1):下标直接查找 链表 O(n):从头指针往后遍历才能找到 插入和…...
高云FPGA-新增输出管脚约束
module led (input sys_clk, // clk inputinput sys_rst_n, // reset inputoutput reg [5:0] led, // 6 LEDS pinoutput reg gpio // 1 GPIO pin 25 ); 在原来的代码基础上新增加一个gpio输出,绑定到25管脚上 打开工程文件夹中的cts文件…...
Nginx 返回 504 状态码表示 网关超时(Gateway Timeout)原因排查
Nginx 返回 504 状态码表示 网关超时(Gateway Timeout),这意味着 Nginx 作为反向代理服务器,在等待上游服务器(如后端应用服务器、数据库服务器等)响应时,超过了预设的时间限制,最终…...
单片机 | 基于STM32的智能马桶设计
基于STM32的智能马桶设计结合了传感器技术、嵌入式控制及物联网功能,旨在提升用户体验并实现健康监测。以下是其设计原理、功能模块及代码框架的详细解析: 一、系统架构与核心功能 智能马桶的系统架构通常分为主控模块、传感器模块、执行器模块、通信模块及用户交互模块,主…...
2900. 最长相邻不相等子序列 I
2900. 最长相邻不相等子序列 I class Solution:def getLongestSubsequence(self, words: List[str], groups: List[int]) -> List[str]:n len(groups) # 获取 groups 列表的长度ans [] # 初始化一个空列表,用于存储结果for i, g in enumerate(groups): # 遍…...
欧姆龙 CJ/CP 系列 PLC 串口转网口模块:工业通信升级的智能之选
在工业自动化领域,欧姆龙 CJ/CP 系列 PLC 凭借高可靠性和灵活扩展性,广泛应用于汽车制造、食品加工、能源化工等关键行业。然而,传统串口通信的局限性(如距离受限、协议兼容性差、难以实现远程监控)却成为企业智能化升…...
BGP选路实验
一.需求 1.使用PreVal策略,确保R4通过R2到达192.168.10.0/24 2.使用As_Path策略,确保R4通过R3到达192.168.11.0/24 3.配置MED策略,确保R4通过R3到达192.168.12.0/24 4.使用Local Preference策略,确保R1通过R2到达192.168.1.0/2…...
Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析
目录 一.LVSKeepAlived高可用负载均衡集群的部署 二.NginxKeepAlived高可用负载均衡集群的部署 一.LVSKeepAlived高可用负载均衡集群的部署 实验环境 主keepalived:192.168.181.10 lvs (7-1) 备keepalived:192.168.181.10…...
idea整合maven环境配置
idea整合maven 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码…...
pytest框架 - 第二集 allure报告
一、断言assert 二、Pytest 结合 allure-pytest 插件生成美观的 Allure 报告 (1) 安装 allure 环境 安装 allure-pytest 插件:pip install allure-pytest在 github 下载 allure 报告文件 地址:Releases allure-framework/allure2 GitHub下载&#x…...
互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化
标题:互联网大厂Java求职面试:构建高并发直播平台的架构设计与优化 引言 在互联网大厂的Java求职面试中,技术总监级别的面试官通常会提出一系列复杂且前沿的技术问题,以评估候选人的真实技术水平。本篇文章将围绕构建一个千万级…...