抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Docker 是一个开源的容器化平台,把应用及其依赖打包成标准化的镜像,并以容器的方式隔离运行。它解决了「在我机器上能跑」的环境一致性问题,也是 CI/CD、微服务和云原生基础设施的基础组件。

本文基于 Docker Engine 29.9.x(2026-10)和官方最新文档重写。Docker 29 的重要变化:全新安装默认使用 containerd image store,cgroup v1 已弃用,nftables 后端仍为实验特性。

版本说明(2026):本文基于 docker 18.06.1 + docker-compose 1.22.0(Compose v1)。Compose v1 已于 2023 年 7 月停止维护,当前使用 Compose v2:命令为 docker compose(空格),文件默认 compose.yaml,不再需要顶层 version: 字段,安装方式也改为随 Docker CLI 插件分发。下文命令把 docker-compose 换成 docker compose 即可,配置示例仍可参考。

环境:docker:18.06.1,docker-compose:1.22.0

docker18.06 对应的 Compose 文件格式版本为 3.7

本篇包含以下内容:

Docker 存储要区分两个层面:

  • 镜像/容器层存储:由 storage driver 或 containerd snapshotter 管理,负责镜像层、容器可写层、写时复制。
  • 数据持久化:由 volume、bind mount、tmpfs 提供,把数据放在容器可写层之外。

本文基于 Docker Engine 29.9.x(2026-10)官方文档重写,重点说明 Docker 29 默认的 containerd image store、overlay2、三种挂载方式、备份恢复和空间治理。

Docker 网络负责容器之间、容器与宿主机、容器与外部网络之间的通信。理解网络驱动、端口发布、DNS 和防火墙,是排查容器「连不上」问题的基础。

本文基于 Docker Engine 29.9.x(2026-10)官方文档重写,覆盖 bridge、host、none、overlay、macvlan、ipvlan、端口发布、IPv6、Compose 网络和防火墙。