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

Docker 学习篇(一)| 认识 Docker

Docker 学习篇一| 认识 Docker1. 什么是 Docker2. Windows 上装软件的痛3. Docker 怎么解决的4. 三核心仓库、镜像、容器5. 三个动作没有安装6. Docker 解决了传统部署的三大痛点痛点一环境冲突 —— JDK 版本打架痛点二移植噩梦 —— Ubuntu 迁 CentOS痛点三资源浪费 —— 空闲服务吃内存7. Docker Desktop 是什么8. 实际好处9. 常见疑问1. 什么是 DockerDocker 是一个容器引擎。它把程序和程序需要的运行环境操作系统、依赖库、配置打包在一起放进一个叫容器的隔离空间里运行。你可以理解为Docker 在你的电脑里划出一个个独立的小隔间每个隔间自带一套微型 Linux互不干扰。程序跑在隔间里和外面 Windows 系统是隔离的。三个关键词打包、隔离、一次构建到处运行。2. Windows 上装软件的痛装 MySQL下载.exe→ 下一步 → 输密码 → 完成。一切正常。直到你想同时装 MySQL 5.7 和 8.0 —— 安装程序直接拒绝「已检测到 MySQL 存在」。不是你的问题。Windows 的设计决定了所有程序共享一套环境——同一个文件系统、同一份注册表、同一组系统服务。两个版本的同一款软件必然打架。3. Docker 怎么解决的Docker 给每个程序分配一个独立的小隔间叫容器。每个容器自带一个微型 Linux几十 MB不依赖你的 Windows程序需要的所有依赖JDK、glibc 等程序本身容器之间完全隔离。场景WindowsDocker装两个 MySQL不可能两个容器各跑各的卸载软件卸载程序 残留注册表 残留文件删容器彻底干净软件依赖冲突两个软件要不同版本的 Python得折腾各自容器自带Windows 是大通铺Docker 是公寓楼每个房间自带水电。4. 三核心仓库、镜像、容器Docker 的世界里只有这三样东西核心是什么类比仓库Registry存放镜像的地方官方的叫 Docker Hub国内有镜像加速站应用商店镜像Image程序 微型 Linux 所有依赖打包成一个只读文件Word 模板.dotx容器Container用镜像启动出来的运行实例正在干活的进程打开后的编辑窗口关系一句话仓库里存镜像镜像启动变容器。镜像是文件容器是进程。5. 三个动作没有安装Docker 世界里没有安装软件这一步只有三个动作动作命令做什么拉取docker pull mysql:8.0下载别人做好的镜像构建docker build -t my-app .把自己的项目打成镜像运行docker run -d mysql:8.0从镜像启动容器6. Docker 解决了传统部署的三大痛点痛点一环境冲突 —— JDK 版本打架服务器上已有 Spring Boot 1.x 项目要 JDK 8新项目 Spring Boot 3.x必须 JDK 17。Linux 只有一个全局JAVA_HOME指 JDK 8 → 新项目报Unsupported major.minor version 61.0指 JDK 17 → 老项目报NoClassDefFoundError: javax/xml/bind/…传统解法装两个 JDK给每个项目写脚本设各自的JAVA_HOME再写 systemd 服务文件管理启停。每来一个新 JDK 版本的项目就重复一遍。Docker每个项目自己打包一个 Dockerfile各带各的 JDK# 老项目 FROM eclipse-temurin:8-jdk-alpine COPY old-demo.jar app.jar CMD [java, -jar, app.jar] # 新项目 FROM eclipse-temurin:17-jdk-alpine COPY new-demo.jar app.jar CMD [java, -jar, app.jar]dockerrun-d--nameold-project-p8081:8080 old-project:v1dockerrun-d--namenew-project-p8082:8080 new-project:v1JDK 各带各的宿主机不装 JDK 都行。不止 JDK一台 Docker 可以同时跑不同版本的 MySQL、Redis、NginxDocker只装一个管理一切 ├── MySQL 8.0 容器 → 宿主机 3306 ├── MySQL 5.7 容器 → 宿主机 3307 ├── Redis 7 容器 → 宿主机 6379 ├── Nginx 容器 → 宿主机 80 ├── 博客后端 容器 → JDK 17 → 宿主机 8080 └── 老项目 容器 → JDK 8 → 宿主机 8081六个容器各带各的版本互不干扰。Windows 上做不到。痛点二移植噩梦 —— Ubuntu 迁 CentOS本地 Ubuntu 22.04 开发好了迁移到 CentOS 8 服务器MySQL 安装命令不同aptvsdnf配置路径不同系统库包名不同libpng-devvslibpng-devel文件权限不同ubuntu用户 vsec2-user传统解法导出apt list --installed手动映射到dnf包名一个个装。改配置路径。修权限。反反复复试错。Docker本地和服务器用同一份docker-compose.ymlDockerfile# 本地dockercompose up-d# 服务器 —— 完全一样的命令dockercompose up-d系统和库在镜像里不依赖宿主机。数据库地址用容器名mysql而不是 IP换个环境照样通。痛点三资源浪费 —— 空闲服务吃内存一台 4GB 服务器跑 Redis默认 100MB MySQL默认 300MB Tomcat默认 200MB。晚上没人用也吃掉 600MB。传统解法手动调每个服务的配置redis.conf的maxmemory、my.cnf的innodb_buffer_pool_size、Tomcat 的JAVA_OPTS写 cron 定时停启脚本。累容易出错。Dockerdockerrun-d--nameredis--memory50m redis:7-alpinedockerrun-d--namemysql--memory100m-eMYSQL_ROOT_PASSWORDroot mysql:8.0dockerrun-d--nametomcat--memory100m tomcat:9一行--memory搞定不需要改服务内部配置随时可调。7. Docker Desktop 是什么它是你 Windows 上唯一需要安装的软件。底层通过 WSL2 跑一个轻量级 Linux 虚拟机在这个虚拟机里运行 Docker 引擎。不需要装多个 Docker——一个引擎管理所有容器不需要在 Windows 上装 MySQL、Redis、Nginx——它们全跑在容器里你的 Windows 保持干净8. 实际好处环境不打架JDK 8 / 17 / 21 同时跑MySQL 5.7 和 8.0 并存不污染本机中间件全部容器化系统零残留换电脑无痛装 Docker Desktop → 拉代码 →docker compose up -d所有服务全起环境一致性本地、测试、生产用同一个镜像「我电脑上能跑」成为历史用完即弃测完删容器不留痕迹9. 常见疑问疑问答案容器里面装了 Docker 吗没有。容器里只有程序和依赖Docker 引擎在外面唯一一个每个容器有自己的 JDK对各自打包各自的版本互不影响容器之间能通信吗能通过 Docker 内部网络直接互访Docker 是在 Windows 里又装了个系统是跑了一个微型 Linux不是再装个 Windows镜像是安装包吗不是。是「程序 环境」的打包文件不需要安装启动就是容器

相关文章:

Docker 学习篇(一)| 认识 Docker

Docker 学习篇(一)| 认识 Docker1. 什么是 Docker2. Windows 上装软件的痛3. Docker 怎么解决的4. 三核心:仓库、镜像、容器5. 三个动作,没有"安装"6. Docker 解决了传统部署的三大痛点痛点一:环境冲突 ——…...

手机号查QQ号终极指南:30秒找回遗忘的QQ账号

手机号查QQ号终极指南:30秒找回遗忘的QQ账号 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记QQ号而无法登录?在急需使用QQ联系朋友或同事时,却发现只记得绑定的手机号&#xff…...

科研资料高效管理:从Git、Markdown到可复现研究的工作流实践

1. 项目概述:一个研究者的数字工具箱如果你正在攻读学位,或者是一名需要长期进行文献调研、数据分析和论文写作的研究人员,那么你一定对“资料管理”这件事深有体会。从各大数据库下载的PDF文献,到随手记录的实验笔记,…...

别再死记硬背了!用华为模拟器ENSP手把手复现WLAN旁挂组网(含二层/三层核心区别与Option 43配置)

华为eNSP实战:WLAN旁挂组网从零搭建到抓包分析 刚接触WLAN组网时,最让人头疼的莫过于面对一堆命令行参数却不知道从何下手。我在备考HCIP认证时就深有体会——那些关于二层/三层组网的理论描述,看十遍不如动手做一遍。本文将用华为eNSP模拟器…...

505-evocua-patch temux

技术文章大纲:Workstation神技——一键克隆调试环境 引言:调试环境复制的痛点 传统开发中搭建调试环境耗时且易出错,尤其涉及多版本、多配置时。Workstation的一键克隆功能可高效复制完整环境配置。 核心功能:Workstation克隆机制…...

基于企业微信的私有化AI助手部署:安全接入ChatGPT与Gemini

1. 项目概述:一个安全、可扩展的微信AI助手部署方案如果你和我一样,既想在日常高频使用的微信里便捷地调用ChatGPT、Gemini这类大语言模型,又对直接使用第三方机器人被封号的风险心有余悸,那么这个项目可能就是你在寻找的答案。ch…...

Unity新手避坑:用Video Player在UI上流畅播放CG视频的完整流程(附Render Texture设置)

Unity新手避坑指南:UI界面完美嵌入CG视频的全流程实战 第一次在Unity里用Video Player播放CG视频时,我盯着那个顽固的黑屏整整两小时。直到发现Render Texture的创建位置不对,才意识到这个看似简单的功能藏着多少细节陷阱。本文将带你完整走通…...

全球AI大模型「西方垃圾思维中毒度」TOP30争议与共识:一场认知去殖民化的深度对话

全球AI大模型「西方垃圾思维中毒度」TOP30争议与共识:一场认知去殖民化的深度对话摘要2026年5月发布的《全球AI大模型「西方垃圾思维中毒度」TOP30》引发深度对话。文章评分显示,国产头部AI模型因狂热崇拜波普尔证伪主义、西方期刊权威及认知标尺外包&am…...

Go语言构建Webhook转发桥梁:解决内网穿透,实现自动化流程

1. 项目概述:一个轻量级的Webhook转发桥梁如果你在开发微服务、自动化流程,或者正在折腾各种SaaS工具之间的联动,那你一定对Webhook不陌生。简单来说,Webhook就是一种“反向API”,它允许一个应用在特定事件发生时&…...

内容创作平台集成Taotoken实现多模型文章辅助生成与润色

内容创作平台集成Taotoken实现多模型文章辅助生成与润色 1. 多模型写作辅助的场景需求 现代内容创作平台需要为作者提供多样化的AI辅助功能,从提纲生成到语言润色,不同环节对模型能力的需求各异。例如技术类文章需要严谨的逻辑结构,营销文案…...

实测ME6211C18M5G-N这颗1.8V LDO:5V转1.8V,带载250mA到底稳不稳?

ME6211C18M5G-N LDO深度实测:5V转1.8V的250mA负载稳定性全解析 在嵌入式系统和低功耗设计中,LDO(低压差线性稳压器)的选择往往决定着整个系统的电源稳定性。南京微盟电子的ME6211C18M5G-N作为一款标称输出1.8V、最大电流300mA的LD…...

任天堂Switch屏幕色彩优化终极指南:Fizeau让你的游戏画面更生动

任天堂Switch屏幕色彩优化终极指南:Fizeau让你的游戏画面更生动 【免费下载链接】Fizeau Color management on the Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/fi/Fizeau 想让你的任天堂Switch游戏画面色彩更鲜艳、更真实吗?Fize…...

明日方舟基建自动化管理:从手动烦恼到智能管家

明日方舟基建自动化管理:从手动烦恼到智能管家 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 问题场景切入:当基建管理成为游戏负担 凌晨2点,小陈盯着手机屏…...

AISMM白皮书下载即送《AISMM实施沙盒工具包》:含自动打分引擎、差距分析看板、监管问答知识图谱(限今日激活)

更多请点击: https://intelliparadigm.com 第一章:2026奇点智能技术大会:AISMM白皮书下载 AISMM(Artificial Intelligence Semantic Memory Model)白皮书是2026奇点智能技术大会发布的首份面向认知架构演进的开源技术…...

用STM32F103C8T6做个桌面小摆件:OLED显示+28BYJ-48步进电机旋转角度实时监控

用STM32F103C8T6打造智能桌面摆件:OLED与步进电机的创意融合 周末整理工作室时,发现抽屉里闲置的STM32开发板和几个28BYJ-48步进电机,突然萌生一个想法——何不把这些电子元件变成桌面上既实用又有趣的互动装置?经过两天的折腾&am…...

谭浩强C语言第五版课后习题避坑指南:这10个易错点你踩过几个?

谭浩强C语言第五版课后习题避坑指南:这10个易错点你踩过几个? 作为国内最经典的C语言教材之一,谭浩强教授的《C语言程序设计》已帮助数百万编程初学者打开计算机世界的大门。但许多自学者在完成课后习题时,常常陷入"看似简单…...

为什么你的远程访问总是中断?luci-app-aliddns终极解决方案指南

为什么你的远程访问总是中断?luci-app-aliddns终极解决方案指南 【免费下载链接】luci-app-aliddns OpenWrt/LEDE LuCI for AliDDNS 项目地址: https://gitcode.com/gh_mirrors/lu/luci-app-aliddns 你是否曾经因为动态IP地址的变化而无法远程访问家中的NAS服…...

5G NR DRX配置实战:手把手教你理解HARQ-RTT-Timer与RetransmissionTimer的协同工作

5G NR DRX配置实战:深度解析HARQ-RTT-Timer与RetransmissionTimer的协同机制 在5G网络优化工作中,DRX(Discontinuous Reception)配置是平衡终端功耗与业务时延的关键技术。其中drx-HARQ-RTT-Timer和drx-RetransmissionTimer的协同…...

AI工具搭建自动化视频生成数学运算节点

## 从Python开发者的视角看AI自动化视频生成中的数学运算节点 说起来,去年我在做一个自动化数学教学视频生成项目时,遇到了一个挺尴尬的问题。明明AI生成的视频画面很漂亮,语音也很自然,但一到显示数学公式计算步骤的时候&#xf…...

RV1126驱动移植笔记:我是如何搞定JD9366触摸屏的(从源码分析到DTS调试)

RV1126驱动移植实战:JD9366触摸屏从源码解析到DTS调试全记录 第一次拿到JD9366触摸屏驱动源码时,我盯着满屏的寄存器定义和i2c传输函数发了半小时呆——这堆代码到底该怎么塞进RV1126的内核?为什么别人的移植笔记总是轻描淡写地略过最关键的调…...

Flutter 三方库 ImagePicker 的鸿蒙化适配与实战指南(相机/相册/多图选择全实现)

Flutter 三方库 ImagePicker 的鸿蒙化适配与实战指南(相机/相册/多图选择全实现) 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 哈喽大家好呀👋!我是一名上海某高校的大一计算机新生&#x…...

OBS高级计时器:让你的直播和录制时间管理变得简单高效

OBS高级计时器:让你的直播和录制时间管理变得简单高效 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 你是否在直播或视频录制时经常为时间管理而烦恼?想要一个灵活、专业的计时器来提升…...

AUTOSAR DEM实战:手把手教你理解DTC状态位与故障事件映射(含代码示例)

AUTOSAR DEM深度解析:DTC状态位与故障事件映射的工程实践 在汽车电子系统开发中,诊断功能的设计与实现一直是工程师面临的核心挑战之一。AUTOSAR标准中的诊断事件管理(DEM)模块作为连接底层故障检测与上层诊断服务的桥梁&#xff…...

【USV】无人水面艇的轨迹跟踪和碰撞避免的实时非线性模型预测控制研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &…...

UDS诊断开发避坑指南:从ISO14229标准到代码实现,如何正确处理NRC优先级?

UDS诊断开发中的NRC优先级处理:从标准解读到嵌入式实践 在汽车电子控制单元(ECU)开发领域,UDS(Unified Diagnostic Services)诊断协议是实现车辆故障检测、参数配置和软件刷写等功能的核心技术框架。作为IS…...

八大网盘直链下载助手:告别限速,极速下载完整指南

八大网盘直链下载助手:告别限速,极速下载完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

ThinkBook 14+ 2023 双硬盘双系统实战:三星980 Pro 2T装Win11,原盘装Ubuntu 23.04

ThinkBook 14 2023双系统终极配置指南:从硬件规划到完美引导 最近两年,双硬盘双系统的组合在技术爱好者中越来越流行。ThinkBook 14 2023凭借其双M.2接口设计(一个PCIe 4.0和一个PCIe 3.0),成为实现这一方案的理想平台…...

B站缓存视频合并工具:零基础3步将碎片视频变完整MP4

B站缓存视频合并工具:零基础3步将碎片视频变完整MP4 【免费下载链接】BilibiliCacheVideoMerge 🔥🔥Android上将bilibili缓存视频合并导出为mp4,支持安卓5.0 ~ 13,视频挂载弹幕播放(Android consolidates and exports …...

为 OpenClaw 配置 Taotoken 作为其大模型供应商

为 OpenClaw 配置 Taotoken 作为其大模型供应商 1. 准备工作 在开始配置之前,请确保您已经完成以下准备工作。首先,您需要拥有一个有效的 Taotoken API Key,可以在 Taotoken 控制台中创建。其次,您需要确定要使用的模型 ID&…...

暗黑破坏神2存档编辑器的完整指南:5分钟学会免费修改D2/D2R游戏存档

暗黑破坏神2存档编辑器的完整指南:5分钟学会免费修改D2/D2R游戏存档 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经因为角色build不理想而想重新开始?或者因为意外丢失了珍贵的装备而感到沮丧…...