1. Docker Engine(核心引擎)
    Docker Daemon:后台服务进程,负责管理容器、镜像、网络等
    REST API:提供接口让外部程序与 Daemon 通信
    Docker CLI:命令行工具,就是你在终端输入的 docker run、docker build 这些命令

  2. Docker Image(镜像)
    容器的"模板",只读的,类似一个打包好的系统快照
    由多个层(Layer) 叠加构成,每一层对应 Dockerfile 里的一条指令
    存储在本地或镜像仓库中

  3. Docker Container(容器)
    镜像运行起来就是容器,是真正干活的单元
    每个容器相互隔离,有自己的文件系统、进程、网络
    可以启动、停止、删除,删除后数据默认不保留

  4. Dockerfile
    一个文本文件,描述如何构建镜像的步骤
    常见指令包括 FROM、RUN、COPY、CMD、EXPOSE 等

  5. Docker Registry(镜像仓库)
    存储和分发镜像的地方
    Docker Hub 是官方公共仓库
    也可以搭建私有仓库,比如 Harbor

  6. Docker Network(网络)
    容器之间或容器与外部通信的机制,主要有几种模式:
    bridge:默认模式,容器通过虚拟网桥通信
    host:直接使用宿主机网络
    none:完全隔离,无网络
    overlay:跨主机容器通信,用于集群场景

  7. Docker Volume(数据卷)
    解决容器数据持久化的问题
    容器删除后数据仍然保留
    也可以在多个容器之间共享数据

  8. Docker Compose
    用一个 docker-compose.yml 文件定义和管理多容器应用
    一条 docker compose up 命令就能启动整套服务(比如同时启动应用、数据库、缓存)

  9. Docker Swarm,实际使用k8s比较多
    Docker 原生的容器编排工具
    把多台机器组成一个集群,统一调度和管理容器
    功能比 Kubernetes 简单,但上手更容易

进阶:
使用REST API,直接来控制docker
举例:

sudo curl --unix-socket /var/run/docker.sock -X POST \
     -H "Content-Type: application/json" \
     -d '{"Image": "alpine", "Cmd": ["echo", "hello API"]}' \
     http://localhost/containers/create?name=my-api-test
     # localhost是地址,containers/create是接口,其他的请求数据

在本地创建镜像仓库:
运行仓库容器 (docker自带) --> 上传镜像到本地仓库

更多推荐