00 Docker简介

alex
2
2025-12-18

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后在任何支持Docker的机器上运行。

1、Docker介绍

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后在任何支持Docker的机器上运行。

核心概念

1. 镜像(Image)

  • 只读模板,包含运行应用所需的所有内容----就是程序的可执行文件

  • 类似于虚拟机的快照

  • 可以通过Dockerfile构建

2. 容器(Container)

  • 镜像的运行实例

  • 轻量、隔离的进程环境

  • 可启动、停止、删除

3. 仓库(Registry)

  • 存储镜像的地方(如Docker Hub)

  • 类似Git的代码仓库

2、Docker核心三件套

Docker、Docker Compose 和 Dockerfile

3、三者联系

专业理解

1. Docker:容器化平台(核心引擎)这是整个技术栈的基础和运行时环境

核心功能

  • 镜像管理docker pull(拉取)、docker images(列出)、docker rmi(删除)

  • 容器生命周期docker run(创建并启动)、docker start/stop/restart(启停)、docker rm(删除)

  • 运维与调试docker ps(查看容器)、docker logs(查看日志)、docker exec(进入容器)

  • 网络与存储:管理容器网络、卷(Volume)

2. Dockerfile:镜像构建蓝图(定义文件)

这是一个纯文本文件,包含了一系列指令,用于定义如何构建一个Docker镜像

核心理念层(Layer)缓存(Cache)。每一条指令都会创建一个新的镜像层,Docker会利用缓存来加速后续构建。

核心指令

  • FROM:指定基础镜像(必须是第一条指令

  • RUN:在镜像内执行命令(如安装软件)

  • COPY / ADD:将文件从主机复制到镜像

  • WORKDIR:设置后续指令的工作目录

  • ENV:设置环境变量

  • EXPOSE:声明容器运行时监听的端口

  • CMD / ENTRYPOINT:指定容器启动时运行的默认命令

3. Docker Compose:多容器编排工具(协调者)

这是一个用于定义和运行多容器Docker应用的工具。通过一个 docker-compose.yml 文件,你可以轻松配置和管理由多个服务(容器)组成的完整应用栈(如Web前端 + 后端API + 数据库)。

核心优势

  1. 一键启停docker-compose up / docker-compose down

  2. 服务编排:定义服务间的依赖关系(如“后端依赖数据库先启动”)

  3. 统一配置:集中管理网络、数据卷、环境变量

  4. 开发友好:非常适合本地多服务应用的开发、测试

通俗解释

  • Docker = 整套建筑工具和车间(让你能生产、运输、安装“房间”)

  • Dockerfile = 房间的“预制板设计图纸”(定义如何打造一个标准化房间)

  • Docker Compose = 整个小区的“施工总图”(定义如何组合多个房间,并连接水电网络)

组件

角色

输入

输出

核心文件

Dockerfile

构建蓝图

源代码 + 依赖说明

一个镜像 (Image)

Dockerfile

Docker

核心引擎

镜像

运行中的容器 (Container)

Docker Compose

编排总管

docker-compose.yml

一组互连的容器 (多服务应用)

docker-compose.yml

总结docker是平台兼管理者,dockerfile是构建者,docker-compose是协调者

典型工作流

  1. 开发阶段:编写 Dockerfile,定义单个应用的环境。

  2. 构建阶段:使用 docker build 根据 Dockerfile 创建可移植的镜像。

  3. 单容器运行:使用 docker run 启动单个容器进行测试。

  4. 多容器编排:编写 docker-compose.yml,定义整个应用栈(Web/App/DB等)。

  5. 部署运行:使用 docker-compose up 一键启动所有相互依赖的服务。

动物装饰