
做开发 / 运维的朋友大概率都听过这句话「在我电脑上跑的好好的怎么到服务器上就报错了」开发用 Windows测试用 Mac生产用 Linux环境不一样项目依赖的 JDK、Python、MySQL、Nginx 版本不统一装一个软件要配一堆环境换台机器就得重来一遍多个项目依赖冲突改一个崩另一个这些问题Docker 就是专门来解决的。————————————————你可以把服务器看成一艘大货轮应用 / 项目看成要运输的货物。没 Docker 前货物随便堆在船上不同货物软件互相挤压、冲突换一艘船换服务器就得重新装卸非常麻烦。有 Docker 后把项目 依赖 配置全部打包进一个独立集装箱里集装箱内部环境封闭和外界互不干扰不管船是啥型号Windows/Mac/Linux只要支持 Docker集装箱就能直接用一个船上可以同时跑很多集装箱互不影响————————————————Docker 是一个轻量级的容器化技术用来把应用和它运行需要的所有环境打包成一个独立、可移植、能一键运行的单元。简单记Docker 给软件做「标准化打包 隔离运行」的工具。和虚拟机有啥区别不用深入知道结论就行不用懂底层新手只需要记住虚拟机很重启动慢占资源多相当于一整套新电脑Docker 容器很轻启动快共享主机内核只打包应用和依赖对我们来说Docker 更轻、更快、更好用。———————————————————————————————————————————为什么要用 Docker3 个核心理由1. 解决「环境不一致」的噩梦这是 Docker 最核心的价值。开发把项目打包成 Docker 镜像测试 / 生产直接拉取镜像运行环境完全一样再也不会出现「我这能跑你那不行」举个最简单的例子你本地用 Python 3.9服务器是 Python 3.6代码跑不起来。用 Docker 直接把「代码 Python3.9 依赖库」打包到哪运行都是同一套环境。2. 一键 部署 不用重复配环境以前装个 Nginx 、MySQL、 Redis 要下载、配置、改权限、开机自启……用 Docker一条命令直接拉取镜像启动不用管环境依赖。哪怕换 10 台服务器操作完全一样零配置差异。3. 应用隔离互不干扰一台服务器上可以跑项目 A 的容器项目 B 的容器测试环境的容器生产环境的容器它们文件系统、网络、依赖全隔离一个崩了不影响另一个。———————————————————————————————————————————Docker 3 个最基础概念新手必须懂不讲复杂只说最核心的 3 个1. 镜像Image—— 「模板 / 安装包」可以理解成软件的只读模板里面包含代码、运行环境、依赖库、配置文件比如Nginx 镜像、MySQL 镜像、你的项目镜像一个镜像可以创建 N 个运行的容器2. 容器Container—— 「运行起来的软件」容器 镜像运行后的实例镜像是死的模板容器是活的正在运行的服务就像镜像是「安装包」容器是「安装后打开的软件」3. 仓库Repository—— 「应用商店」官方仓库叫 Docker Hub里面有别人打包好的各种镜像MySQL、Redis、Java、Python…我们直接下载使用不用自己从头打包————————————————Docker 就是一个容器工具它能把你的项目 所有依赖环境打包成一个独立、可移植、一键运行的容器彻底解决环境不一致、部署麻烦、软件冲突的问题。这篇文章只讲基础概念不涉及安装、命令、实操目的就是让新手第一眼就明白Docker 是干嘛的、为什么要用它。版权声明本文节选改编自CSDN博主「手搓DesignPattern」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/m0_73892800/article/details/158705170