Docker(仅学习记录与理解,可能有误或理解不到位)
引言写这篇文章的原因还是最近的项目中多次提到了docker这个东西虽然在用就是跟着那种足够详细的指导一步一步使用但是对于这个东西我完全没有自己的理解docker到底是个什么容器、容器部署这些到底有什么作用。故此有了这篇文章算是分享一个自己的理解也希望看见大家的理解一.Docker到底解决了什么问题工具的诞生都是为了解决问题所以先从这方面去介绍先看一个程序员经典痛点简单来讲就是代码在这台电脑可以运行换到另外一台电脑就跑不动了这个是个梗哈但也是实际情况我脑回路比较清奇我想的是交付的时候直接把这台电脑一起交付过去就行了欸很巧的是其实docker干的就是差不多的事情。换台电脑就跑不动的原因环境不一致我说的直接把电脑一起交付过去其实就是把环境原封不动地交付过去当然在实际项目中这是不可能的不然每有一个软件就有一台计算机这个有点夸张了不过目的也就明确了就是把环境1:1复刻过去这就是docker干的事。写到这里其实看似说通了其实我自己也是懵逼的为啥因为是个人都知道你下载一个软件也好或者其它什么也好其实都分了什么windows/linux/mac对吧你docker牛逼把环境都搬过去了那你docker本身又如何兼容docker所处的环境而且这样和其实有点像虚拟机了以及docker搬环境搬多少内部的环境与外部的环境属于不同的又该怎么办这是我写到这里冒出来的问题接这往下看吧最经典的类比集装箱你可以把 Docker 理解成「软件界的集装箱」过去运输货物每件货形状大小都不一样装船、卸车、中转都要重新分拣打包效率极低还容易坏。有了集装箱之后所有货物都装进统一规格的箱子里全程密封不拆箱。不管是装船、卡车拉、火车运任何运输工具都能直接适配不用管箱子里装的是什么。对应到软件世界货物 你的应用代码、依赖、配置、运行环境集装箱 Docker 容器轮船 / 卡车 / 火车 任何装了 Docker 的机器电脑 / 服务器 / 云主机一句话总结Docker 把应用连同它需要的所有运行环境一起打包成一个密封的 “箱子”。这个箱子放到任何有 Docker 的机器上直接就能运行完全不用重新配置环境也不会出现 “水土不服”。二.核心概念镜像、容器、仓库Docker必懂得三个核心概念三者是[模板-实例-仓库]的关系。1.镜像(image)镜像是只读的模板文件相当于集装箱的设计图纸半成品。比如nginx:latest镜像就是一个 “已经装好 Nginx 软件的系统模板”python:3.11镜像就是带 Python 3.11 环境的模板。你可以基于官方基础镜像往里添加自己的代码、配置、依赖打包成属于你自己的应用镜像。镜像分层存储复用率高体积小。2.容器(container)容器是镜像运行起来的实例相当于真正投入使用的集装箱。类比面向对象编程镜像 类容器 对象一个镜像可以创建无数个互不干扰的容器。容器默认是 “临时” 的容器运行时产生的数据、日志、修改容器删除后就会消失。如果需要数据持久保存要用「数据卷Volume」把数据映射到宿主机上。容器之间互相隔离每个容器有自己的文件系统、网络、进程空间A 容器崩溃、中毒、改配置完全不会影响 B 容器。3.仓库(Registry)仓库是存放镜像的云盘/应用商店。官方公共仓库是 Docker Hub里面有海量官方镜像MySQL、Redis、Nginx、Ubuntu 等拉下来就能用。国内常用阿里云镜像、网易云镜像等加速源企业内部一般会搭建私有仓库Harbor存放自己的业务镜像。三.容器与虚拟机的对比容器与虚拟机的本质区别在[隔离层级]对别维度虚拟机(VMware/KVM)Docker容器隔离级别操作系统级隔离模拟完整硬件内核进程级隔离、共享宿主机操作系统内核资源占用重每个虚拟机占几GB磁盘、几GB内存轻一个容器通常只有几十MB到几百MB启动速度分钟级秒级单机密度一台服务器跑十几个很吃力一台服务器轻松跑上百个隔离强度极强完全独立系统较强满足大多数业务隔离需求通俗对比虚拟机在你的房子里重新盖一整栋独立小房子有自己的墙壁、水电、家具完整操作系统。安全但费材料、盖得慢。容器在你的房子里用隔板隔出一个个独立房间共享房子的地基、水电宿主机内核每个房间有自己的家具。隔起来快、占空间小、性价比高。补充Windows/Mac 上的 Docker 桌面版底层会跑一个轻量 Linux 虚拟机来提供内核本质上还是共享这个虚拟机的内核。四.容器部署是什么容器部署就是一种全新的应用发布方式1.开发人员把代码、依赖、环境、配置一起打包成Docker镜像2.把镜像推送到镜像仓库3.运维、自动化工具在目标服务器上拉去镜像、一条命令启动容器应用就跑起来了。整个过程不需要在服务器上安装任何运行环境、不需要改配置、不需要解决依赖冲突只要服务器装了Docker就能一键部署。五、为什么要用Docker/容器核心价值1.环境绝对一致彻底解决”我电脑上能跑“一次构建到处运行。开发、测试、生产用同一个镜像再也不会出现”本地好好的上线就崩“的环境问题。2.轻量高效资源利用率极高容器共享宿主机内核没有额外的操作系统开销。同样一台服务器容器数量能达到虚拟机的 5~10 倍大幅节省服务器成本。3.秒级启动部署/回滚极快镜像有版本标签比如v1.0/v2.0发布就是拉去新镜像启动容器出问题直接切回滚版本镜像回滚只需要几秒。4.环境隔离互不干扰一台机器上跑多个应用A用Python3.8, B用Python3.11完全不会冲突一个应用崩了、被攻击了不会波及其他应用。这里听着有点像conda创建虚拟环境5.可移植性极强不管是物理机、虚拟机、云服务器、国产系统只要装了Docker镜像就能直接跑。应用迁移、跨云迁移成本极低。6.完美适配自动化与云原生配合CI/CD工具(Jenkins/GitLab CI)代码提交后自动构建镜像、自动部署配合Kubernetes可以实现自动扩缩容、故障自愈是云原生时代的技术基石。我也不懂这块到底是干啥的也算是一个坑吧未来了解了再把它填上六.什么场景下会用Docker1.微服务架构部署每个微服务打包成一个容器独立开发、独立部署、独立升级服务之间互不影响是微服务的最佳落地载体。2.团队开发与测试统一环境团队所有人用同一个镜像开发避免”你环境有问题“的扯皮测试环境和生产环境100%一致大幅降低测试漏测概率。3.快速搭建中间件/学习环境想试用MySQL、Redis、MongoDB、Elasticsearch?不用下载安装、不用改配置一条docker run命令直接启动用完就删干净不污染本地环境。4.持续集成/持续部署(CI/CD)代码提交-自动构建镜像-自动部署测试环境-审核后自动上线生产形成完整自动化流水线是互联网公司的标准玩法。5.云原生与弹性伸缩应对电商大促、流量突增一分钟内启动上百个容器扛流量高峰过后自动销毁按需付费大幅节省成本。6.老旧应用迁移老系统跑在Windows Server 2008、CentOS 6等旧系统上想迁到新服务器又怕改坏。直接打包成容器镜像在新环境原样运行几乎不用修改代码。7.多租户Saas服务每个客户分配一个独立容器数据和环境完全隔离成本比给每个客户开一台虚拟机低得多。七.容器的编排当容器数量多了、应用需要多个容器配合前后端、数据库就需要编排工具Docker Compose单机多容器编排。用一个docker-compose.yml文件定义所有容器一条docker-compose up全部启动适合开发和小型项目。KubernetesK8s生产级集群编排。管理成百上千台服务器上的容器实现自动部署、自动扩缩容、故障自愈、负载均衡是大厂的标准方案。八.总结Docker的本质是应用打包与运行的标准化工具它把”环境“这个麻烦的变量彻底封装起来让应用的交付、部署、迁移变得像搬集装箱一样简单高效。在微服务、自动化运维、云原生的大趋势下已经成为后端开发、运维、测试岗的必备技能。结语其实这边文章里面还有好多东西我自己都没有弄清楚主要是因为在做nlp2sql时用到了国产的显卡然后就需要去搞vllm然后又不兼容又得搞专门提供的容器用里面的适配版本的vllm然后再把接口从容器引导宿主机这里面有使用docker的过程所以写下此文章里面有些坑后续再填吧大家就当个粗略了解docker的乐呵文看看得了。

相关新闻

30分钟极速打造:Windows 11极致精简镜像终极指南

30分钟极速打造:Windows 11极致精简镜像终极指南

30分钟极速打造:Windows 11极致精简镜像终极指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 还在为Windows 11臃肿的系统占用而烦恼吗&#xff1f…

2026/10/12 2:52:40 阅读更多 →
嵌入式软硬件系统知识分享系列--前言

嵌入式软硬件系统知识分享系列--前言

# 关于“嵌入式系统从0到1”系列文章:我为什么想写一个完整的知识体系?## 写在开头从事嵌入式开发这些年,我踩过无数坑,也翻过无数遍 datasheet。回头看自己走过的路,最大的感触不是技术有多难,而是学习资料…

2026/10/4 20:15:54 阅读更多 →
二维码容错机制解析:从里德-所罗门码到工程实践

二维码容错机制解析:从里德-所罗门码到工程实践

最近在开发一个扫码登录功能时,遇到了一个有趣的问题:用户上传的二维码图片,即使因为打印或裁剪缺失了一个角,系统依然能成功识别。这让我对二维码的“容错”机制产生了浓厚的兴趣。我们每天都在扫二维码,但你是否想过…

2026/10/8 23:31:31 阅读更多 →

最新新闻

JSTL 标签库实战:从脚本片段到标签封装的核心技巧

JSTL 标签库实战:从脚本片段到标签封装的核心技巧

1. 从脚本片段到标签封装&#xff1a;JSTL 到底解决了什么问题很多人第一次接触 JSTL&#xff0c;是在维护一个老项目的时候。打开 JSP 文件&#xff0c;满屏的<% for(...) { %>、<% if(...) { %>和<% request.getAttribute("xxx") %>&#xff0c;…

2026/10/12 17:55:23 阅读更多 →
告别API依赖!GitHub上那些可以完全本地运行的优质开源AI项目盘点:用TaoToken统一Key打通本地与云端

告别API依赖!GitHub上那些可以完全本地运行的优质开源AI项目盘点:用TaoToken统一Key打通本地与云端

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 17:55:23 阅读更多 →
共享单车数据集VOC格式实战:从标注解析到YOLO训练全流程

共享单车数据集VOC格式实战:从标注解析到YOLO训练全流程

简介&#xff1a;这份共享单车数据集采用VOC格式整理&#xff0c;面向从事目标检测算法练习、课程设计或毕业设计的学生与开发者&#xff0c;可用于训练和验证单车识别模型&#xff0c;解决真实街景中共享单车标注样本不足的问题。压缩包共272个文件&#xff0c;包含136张jpg实…

2026/10/12 17:55:23 阅读更多 →
Python机器学习预测电影首周票房实战指南

Python机器学习预测电影首周票房实战指南

简介&#xff1a;这是一套面向计算机专业本科生的机器学习实战项目资源&#xff0c;聚焦电影票房预测这一典型回归建模任务&#xff0c;适用于毕业设计、课程设计及期末大作业场景。资源包含完整可运行的Python源码、清洗后的TMDB 5000电影数据集&#xff08;含credits与movies…

2026/10/12 17:55:23 阅读更多 →
Jupyter Notebook虚拟环境配置指南:Kernel与conda/venv绑定方法

Jupyter Notebook虚拟环境配置指南:Kernel与conda/venv绑定方法

1. 先搞清楚&#xff1a;为什么 Notebook 老是"用错环境"我最初接触这个问题&#xff0c;是因为在同一个项目里同时跑了两个不同版本的深度学习框架&#xff0c;一个依赖 Python 3.8&#xff0c;一个依赖 Python 3.10。Jupyter Notebook 默认启动时用的是系统 PATH 里…

2026/10/12 17:55:23 阅读更多 →
Tesseract OCR中文识别实战:安装、调优与避坑指南

Tesseract OCR中文识别实战:安装、调优与避坑指南

简介&#xff1a;Tesseract OCR 安装包与中文语言包面向需要在本地完成图片文字识别的开发者、测试人员及自动化办公用户&#xff0c;尤其适合用 Python 调用 OCR 引擎处理中文文档、票据或截图的人群。压缩包共 723 个文件&#xff0c;约 36.01MB&#xff0c;以 C 源码&#x…

2026/10/12 17:54:23 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天&#xff0c;画面可以做到绝对的锐利、平滑与无瑕。然而&#xff0c;当一张秋日手账插画或拍立得照片过于“平整无瑕”时&#xff0c;往往会散发出一种冰冷生硬的“数码塑料感&#xff08;Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中&#xff0c;横排&#xff08;Horizontal Layout&#xff09;早已经成为了绝对的主流。然而&#xff0c;当我们翻开泛黄的线装古籍、宋版木刻诗集&#xff0c;或是欣赏一张茶道雅集的手写便签时&#xff0c;那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点&#xff0c;很多人心里都会悄悄亮起一盏警示灯。 在心理学上&#xff0c;这种现象有一个专门的称谓——“周日夜晚焦虑症&#xff08;Sunday Scaries&#xff09;”。明天又是周一&#xff0c;闹钟又要重新在七点响彻卧房&#xff1b;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →