Docker容器
Docker容器是一种轻量级的虚拟化技术,将应用及其运行环境打包在一个独立、可移植的运行实例中。
容器基于Docker镜像运行,包含应用程序代码、运行时环境、库和配置文件,能够在任何支持Docker的环境中一致地运行。
Docker容器启动快速、资源占用少,且提供进程级别的隔离环境。
每个容器都拥有自己的文件系统、网络、进程空间等,保证相互隔离和安全。
容器本质上是镜像的运行实例,是一个包含应用及其依赖的轻量级运行环境。
容器是由镜像实例化而来的运行实体,可以理解为镜像的一个“活的”实例。
Docker镜像
Docker镜像是一个只读的、分层的文件系统快照,包含应用程序、依赖库、配置文件和运行时环境,用于创建容器。
你可以把 Docker 镜像想象成一个多层蛋糕。
每一层都是只读的,代表了构建应用程序过程中的一个步骤(例如,安装操作系统依赖、复制代码、安装应用依赖等)。
最底层是基础操作系统,每一层都在前一层的基础上添加新的内容。
如下图所示:
一个完整的 Docker 镜像一般包含以下几部分:
组成部分 | 说明 |
---|---|
基础层 | 通常是某个操作系统的最小发行版,如 Alpine、Debian |
中间层 | 安装依赖、运行库、工具等(如 Java、Python、Node 环境) |
应用层 | 应用程序代码、配置文件、依赖包等 |
元数据 | 镜像作者、默认启动命令、环境变量等 |
启动指令 | 镜像启动时运行的默认命令,如 CMD 或 ENTRYPOINT 指定的内容 |
两者的关系
容器和镜像的关系可以类比为:镜像是模具,容器是产品。
镜像就像一个软件的安装包 (.exe, .dmg)。 它包含了安装软件所需的所有文件和指令。
容器就像是运行中的软件实例,当你双击安装包并启动软件后,操作系统会为该软件创建一个独立的运行环境。
这个运行环境就是容器,你可以同时运行同一个软件的多个实例(多个容器),它们之间是相互隔离的。
一个镜像可以创建多个容器: 你可以基于同一个 Docker 镜像启动多个独立的容器。
每个容器都是该镜像的一个运行实例,它们之间互不干扰。就像你可以多次安装同一个软件一样。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》