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/8/5 12:11:26 阅读更多 →
嵌入式软硬件系统知识分享系列--前言

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

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

2026/8/5 12:11:26 阅读更多 →
二维码容错机制解析:从里德-所罗门码到工程实践

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

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

2026/8/5 12:11:26 阅读更多 →

最新新闻

设备OEE提升≠AI成功!一位有23年工控经验的CTO首次披露:AI价值兑现必须跨过的4道组织墙

设备OEE提升≠AI成功!一位有23年工控经验的CTO首次披露:AI价值兑现必须跨过的4道组织墙

更多请点击: https://kaifayun.com 第一章:设备OEE提升≠AI成功!一位有23年工控经验的CTO首次披露:AI价值兑现必须跨过的4道组织墙 在某汽车零部件工厂部署预测性维护AI系统后,设备OEE提升8.3%,但产线停机…

2026/8/5 12:53:43 阅读更多 →
PKHeX.Mobile:手机上免费的宝可梦存档编辑器终极指南

PKHeX.Mobile:手机上免费的宝可梦存档编辑器终极指南

PKHeX.Mobile:手机上免费的宝可梦存档编辑器终极指南 【免费下载链接】PKHeX.Mobile Pokmon save editor for Android and iOS! 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX.Mobile 你是否梦想在手机上就能轻松编辑宝可梦游戏存档?想要随…

2026/8/5 12:53:43 阅读更多 →
你还在手动整理数据?AI自动生成分析报告的5个关键节点,错过=落后半年

你还在手动整理数据?AI自动生成分析报告的5个关键节点,错过=落后半年

更多请点击: https://kaifayun.com 第一章:AI写报告教程 借助现代大语言模型,自动生成结构清晰、内容专业的技术报告已成为日常开发与运维中的高效实践。本章聚焦于使用开源工具链实现端到端的AI报告生成流程,涵盖提示工程设计、…

2026/8/5 12:53:43 阅读更多 →
SAP PI 消息通信的 HTTPS 配置,ABAP 代理、Java 代理与 AAE 的安全通信设计

SAP PI 消息通信的 HTTPS 配置,ABAP 代理、Java 代理与 AAE 的安全通信设计

在 SAP PI 或 SAP Process Integration 项目里,消息能不能跑通,很多时候只是集成链路的第一层问题。真正进入生产运维阶段后,更敏感的问题会冒出来,订单、财务凭证、主数据、供应商信息、客户隐私,这些业务消息在系统之间流转时,不能继续停留在普通 HTTP 的裸奔状态。SAP…

2026/8/5 12:53:43 阅读更多 →
SAP PI / PO 中 WebStart Client 与 ESR、Integration Directory 的安全通信配置详解

SAP PI / PO 中 WebStart Client 与 ESR、Integration Directory 的安全通信配置详解

在很多 SAP PI / PO 项目里,ESR 和 Integration Directory 这两个工具已经陪着系统跑了很多年。开发人员平时从 PI Start Page 打开 Enterprise Services Repository,或者打开 Integration Directory 做 Communication Channel、Receiver Determination、Interface Determina…

2026/8/5 12:53:43 阅读更多 →
SAP PI 双栈对话用户与角色设计,一套从 PISUPER 到最小授权的实战理解

SAP PI 双栈对话用户与角色设计,一套从 PISUPER 到最小授权的实战理解

在 SAP PI 双栈系统里做用户管理,最容易踩坑的地方不是创建用户本身,而是把 ABAP 侧、Java 侧、ESR、Integration Directory、SLD、Runtime Workbench、Adapter Engine、NWA 这些组件之间的授权关系理清楚。很多现场一开始都习惯拿 PISUPER 登录,因为它像一把万能钥匙,几乎…

2026/8/5 12:52:43 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →