docker 基础
Docker 概念核心本质盖房子类比作用Dockerfile文本配置文件建筑图纸 / 菜谱定义了如何构建一个镜像镜像 (Image)只读的模板别墅预制件包 / 模具用来创建和启动容器的静态蓝图容器 (Container)运行中的实例已建成的、运行中的别墅运行应用程序的隔离环境你(开发者)编写Dockerfile(图纸)。你使用命令,让 Docker 根据Dockerfile创建一个Image(生产
·
工作上得用 docker image了,先补补docker的基础知识吧
Dockerfile--别墅的“建筑图纸”
Dockerfile 是一个纯文本文件,里面写满了一步步的指令。它详细描述了如何构建你的应用环境。
- 本质:一个自动化的构建脚本或菜谱。
- 作用:告诉 Docker 引擎从一个什么样的基础环境开始(
FROM ubuntu),需要安装什么软件(RUN apt-get install ...),需要拷贝哪些你自己的代码进去(COPY . /app),以及最后如何启动你的应用(CMD ["python", "app.py"])。 - 类比:它就是那张详细的建筑图纸。图纸上精确地标明了:地基要用什么型号的水泥、墙体要用什么砖、电线要怎么走、门窗要装在哪里。任何施工队拿到这张图纸,都能盖出分毫不差的房子。
镜像 (Image)--标准化的“别墅预制件包”
当你让 Docker 读取 Dockerfile 并执行 docker build 命令时,Docker 会根据图纸上的每一步指令,将所有需要的东西(操作系统基础、依赖库、你的代码、配置文件等)层层叠加,最终打包成一个只读的、静态的模板。这个模板就是镜像 (Image)。
- 本质:一个只读的模板,是应用及其环境的“快照”。
- 特点:
-
- 不变性:一旦创建,就不会被改变。
- 分层结构:镜像是像PS图层一样一层层构建的,可以复用,非常高效。
- 包含一切:包含了运行应用所需的一切,是一个自给自足的包。
- 类比:它就是工厂根据建筑图纸生产出的“别墅预制件包”。这个大包裹里包含了所有预制好的墙板、屋顶、门窗、电线、水管等。它是一个静态的、未组装的、可以被无限复制和运输的包裹。
容器 (Container):真正“运行中的别墅”
当你使用 docker run 命令来运行一个镜像时,Docker 会在这个只读的镜像模板之上,创建一个可写的“活动层”。这个镜像的运行实例就是容器 (Container)。
- 本质:镜像的运行实例。
- 特点:
-
- 动态的:容器是活动、有生命周期的(可以被创建、启动、停止、删除)。
- 隔离的:每个容器都拥有自己独立的文件系统、进程和网络空间,与主机和其他容器互不干扰。
- 轻量级的:容器直接运行在宿主机的内核上,不需要虚拟化硬件,所以启动飞快,资源占用极小。
- 类比:它就是那栋已经根据预制件包组装完毕、通上水电、可以住人的别墅。你可以盖很多栋一模一样的别墅(运行多个容器),它们都基于同一个预制件包(镜像),但每栋别墅(每个容器)都是独立的,你在A栋别墅里刷墙,不会影响B栋别墅。
总结与关系
|
Docker 概念 |
核心本质 |
盖房子类比 |
作用 |
|
Dockerfile |
文本配置文件 |
建筑图纸 / 菜谱 |
定义了如何构建一个镜像 |
|
镜像 (Image) |
只读的模板 |
别墅预制件包 / 模具 |
用来创建和启动容器的静态蓝图 |
|
容器 (Container) |
运行中的实例 |
已建成的、运行中的别墅 |
运行应用程序的隔离环境 |
它们之间的关系流程非常清晰:
- 你(开发者)编写 Dockerfile(图纸)。
- 你使用
docker build命令,让 Docker 根据 Dockerfile 创建一个 Image(生产出预制件包)。 - 你使用
docker run命令,让 Docker 拿这个 Image 来启动一个或多个 Container(盖起一栋或多栋别墅并让其投入使用)。 - 你可以将这个 Image 推送到仓库(Registry),这样任何地方的任何人都可以下载这个“预制件包”,快速地“盖起”一模一样的“别墅”。
更多推荐


所有评论(0)